일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 두 수의 나눗셈
- StringUtils.isBlank
- StringUtils.isEmpty
- 안보내짐
- fullBackupContent
- Could not create service of type FileAccessTimeJournal using
- 크롬개발자도구
- 플루터
- 플러터
- not working
- allowBackup
- TCP/IP모델
- 웹뷰
- carousel slider
- VerticalMultiDragGestureRecognizer
- 안드로이드
- project flow
- gestureRecognizers
- TextFormField
- 입력 커서
- 프로그래머스
- Set ID
- Chrome Developer Tools
- Flutter SDK
- foreground
- freezed
- runSpacing
- 에러
- Flutter
- 앱
- Today
- Total
흰오목눈이야 개발하자
네트워크 공부 (5/9) Lesson 5 네트워크 계층 본문
2022.08.04,05,07,10 (나눠서 4일 정도 걸림)
네트워크 계층 -> 서로 다른 네트워크에 있는 목적지로 데이터를 전송하기 위해 필요하다.
+) 데이터 링크 계층의 기능만으로는 해당 네트워크 안에서만 통신이 가능함.
다른 네트워크끼리 통신하기 위해서는 네트워크 계층이 필요함
- 네트워크 계층의 역할: 네트워크 간의 통신을 가능하게 하는 것
- 라우터(router): 네트워크 계층을 통해 다른 네트워크로 데이터를 전송하기 위해 필요한 네트워크 장비
- 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋을지를 알려주는 기능을 한다.
- 랜에서는 MAC 주소를 통해 통신이 가능하지만 다른 네트워크에는 데이터를 보낼 수가 없다.
-> MAC 주소가 아닌 네트워크를 식별할 수 있는 다른 주소가 필요함. = IP 주소
- IP 주소: 어떤 네트워크의 컴퓨터인지 구분할 수 있도록 하는 주소
- IP 주소로 목적지를 지정하는 것 + 데이터를 어떤 경로로 보낼지도 결정해야 함
- 라우팅(routing): 목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것
- 라우팅은 라우터라는 장비가 한다. 레이어 3 스위치라는 장비도 할 수 있음.
- 라우터에는 라우팅 테이블(routing table)이 있어서 경로 정보를 등록하고 관리한다.
- 네트워크 계층의 대표적인 프로토콜로 IP(Internet Protocol)이 있다.
- 네트워크 계층에서 캡슐화할 때 IP 헤더를 추가한다.
- IP 헤더는 여러 정보가 있지만 대표적으로 출발지 IP 주소, 목적지 IP 주소가 있다는 것만 알아두자.
- IP 패킷: IP 프로토콜을 사용하여 캡슐화할 때 데이터에 IP 헤더가 추가되는 것
!) 계층마다 사용하는 용어가 달라짐! (데이터링크 계층 -> 프레임, 네트워크 계층 -> IP 패킷)
- 데이터를 다른 네트워크로 전달하려면 IP 주소가 필요하다.
- IP 주소는 인터넷 서비스 공급자(ISP)에게 할당받을 수 있다.
- IP 버전에는 IPv4(Internet Protocol version 4), IPv6(Internet Protocol version 6)이 있다.
- IPv4 주소는 32비트로 되어 있어서 IP 주소를 약 43억 개 만들 수 있는데 인터넷이 널리 보급되면서 부족해졌고 이를 보완하기 위해 IPv6 주소를 사용하게 되었다. IPv6은 128비트로 되어 있어서 더 많은 주소를 만들 수 있다.
- IP 주소 종류: 공인 IP 주소와 사설 IP 주소가 있다. 공인 IP 주소는 인터넷 서비스 공급자(ISP)가 제공한다.
- 두 종류가 필요한 이유: IPv4 주소의 숙가 고갈되고 있어서 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당하는 정책을 사용하고 있다.
- 랜 안에 있는 컴퓨터에는 랜의 네트워크 관리자가 사설 IP 주소를 할당하거나 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당하고 있다.
- +) DHCP (Dynamic Host Configuration Protocol): IP 주소를 자동으로 할당하는 프로토콜
- MAC 주소는 48비트로 구분하기 쉽도록 16진수로 표시하고, IP 주소는 32비트로 구분하기 쉽도록 10진수로 표시한다.
- 컴퓨터가 이해하기 위해서는 2진수가 필요하지만 사람도 읽기 쉬워야 하므로 8비트로 나눠서 표시함 -> 좀 더 읽기 쉽도록 10진수로 변환함.
11000000/10101000/00000001/00001010
- 8비트를 옥텟(octet)이라고 부르기도 함.
+) 옥텟(octet): 원래는 그룹 여덟 개를 의미하지만 여기서는 데이터 8비트를 의미
(!) IP주소는 10진수로 표기되어 있지만 실제로는 2진수로 되어 있다는 것을 기억하기!
- IP 주소는 네트워크 ID(네트워크 주소)와 호스트 ID(호스트 주소)로 나누어진다.
- 네트워크 ID: 어떤 네트워크인지 나타냄
- 호스트 ID: 해당 네트워크의 어느 컴퓨터인지 나타냄
- -> 네트워크 ID + 호스트 ID = IP 주소
- IP 주소는 네트워크 규모에 따라 A~E 클래스로 나누어지며 일반적으로는 A~C 클래스를 사용한다.
- IP 주소에는 네트워크 주소와 브로드캐스트 주소가 있다. -> 이 두 주소는 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안 되는 주소다.
- 네트워크 주소: 전체 네트워크에서 작은 네트워크를 식별하는 데 사용되고, 호스트 ID가 10진수로 0이면 그 네트워크 전체를 대표하는 주소가 된다. (예) 192.168.1.0
- 브로드캐스트 주소 : 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는 데 사용되는 전용 IP 주소. 호스트 ID가 255인 경우다. (예) 192.168.1.255
- 서브넷팅(subneting): 네트워크를 분할하는 것
- 서브넷팅되면 기존에 네트워크 ID와 호스트 ID로 구성되어 있던 것이 네트워크 ID, 서브넷 ID, 호스트 ID로 나누어지게 된다.
- 호스트 ID로 사용되던 비트를 서브넷 ID로 바꿈 = 호스트 ID에서 비트를 빌려 서브넷으로 만들 수 있다.
- 서브넷(subnet) : 분할된 네트워크
+) A 클래스 같은 대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있다. 더 많은 네트워크를 만들 수 있어서 IP 주소를 효과적으로 활용할 수 있다.
- 서브넷 마스크 : 네트워크 ID와 호스트 ID를 식별하기 위한 값
+) IP 주소를 서브넷팅하면 어디까지가 네트워크 ID고 어디부터가 호스트 ID인지 판단하기 어려우니까.
- 클래스별로 서브넷 마스크는 A 클래스가 255.0.0.0
- B 클래스가 255.255.0.0
- C 클래스가 255.255.255.0
- 프리픽스(prefix) 표기법: 서브넷 마스크를 슬래시(/비트 수)로 나타낸 것
예) 255.255.255.0 은 /24이 된다.
- 서로 다른 네트워크와 통신하려면 라우터가 필요하다.
- 라우터는 네크워크를 분할할 수 있지만 스위치(레이어 2)와 허브는 분할할 수 없다.
- 컴퓨터에서 다른 네트워크로 전송하려면 기본 게이트웨이(default gateway)를 설정해야 한다.
- 라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식이다.
- 라우팅 테이블: 경로 정보가 등록되어 있는 테이블
- 라우팅 프로토콜: 라우터 간에 라우팅 정보를 서로 교환하기 위한 프로토콜
ps. Lesson 22 복습하기!
'네트워크' 카테고리의 다른 글
네트워크 공부 (7/9) Lesson 7 응용 계층 (0) | 2022.10.02 |
---|---|
네트워크 공부 (6/9) Lesson 6 전송 계층 (0) | 2022.08.21 |
네트워크 공부 (4/9) Lesson 4 데이터 링크 계층 (0) | 2022.08.01 |
네트워크 공부 (3/9) Lesson 3 물리 계층 (0) | 2022.07.15 |
네트워크 공부 (2/9) Lesson 2 (0) | 2022.07.14 |