Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 주변에는 능력자 뿐이야!!
- Null Safety
- 주니어개발자
- 편하다요
- flutter_secure_storage
- Flutter2.8
- 나도 코딩 잘할래!!!!!!!!!!!
- 플러터
- 다트&플러터
- 댓글이 하나도 없오...ㅠㅠ
- 다트 책
- 누가 보기는 하는걸까...ㅠㅠ
- flutter_local_notification
- 포?코DX
- dfs
- flutter secure storage
- 쒸익!!!!!!!!!
- 크레인 인형뽑기
- 이직
- open weather api
- flutter-layout
- bloc
- 코딩 잘하고 싶어!!
- FutureBuilder
- network
- 프로그래머스
- 플러터 책
- flutter
- TODO
- hero animation
Archives
- Today
- Total
오늘하루도 우힣ㅎ
CH4. Network Layer(1) 본문
1. Network Layer
: host-to-host packet delivery 서비스를 제공하게 된다.(목적지의 IP주소를 통해 보내게된다.)
- Two functions in Network layer
-> Data Plane
Forwarding : routing table을 통해 들어온 데이터를 어디로 보낼지 결정하게 된다.
-> Control Plane
: src에서 dest까지 어떻게 가게 될지 결정을 라우팅 경로를 결정하게 된다.
: 여러 라우터 사이에서 정보를 주고 받아서 최적의 경로를 찾게 해준다.
: routing algorithm이 존재하게 된다.
: control plane에는 두가지 종류가 존재한다.
Per-router control plane |
Logically centralized control plane |
- Network layer
-> Network layer issues
- Addressing
- Routing : 최적의 경로를 찾을후 있는가
- Fragmentation : packet의 사이즈가 클때 나누어 보내도록 한다(IPv6에서는 불가능하다.)
- Packetization
2. IP(Internet Protocol)
: Layer3 부분이다.
- IP Protocol : packet들을 다루고, 에러가나도 보고를 하지 않는다.
- ICMP Protocol : 에러가 발생하게 되면 여기서 보고를 하게 된다.
- Routing Protocol : 경로를 설정하는데에 사용되어진다.
-> RFC 791
- Datagram delivery : connectionless service
- Best-effrot service(unreliable service) : error/flow control을 제공하여주지 않는다. 에러 발생여부만을 확인하고 에러발생시에 해당 packet을 버리게 된다(따로 재전송 요청등과 같은 작업을 하지 않는다.), 상위 layer에서 해당 문제를 해결해주어야 한다.
- Provide only data forwarding : routing protocol을 통해 만들어진 routing table을 보고 데이터를 다음 router로 보내주는 역할을 하게 된다. 에러나 제어 메세지는 ICMP에 의해 만들어진다.
-> IPv4 Header Format
|
- Fragmentation and Reassembly
- MTU(Maximum Transmission Unit)
: router에서 packet을 보낼때 최대로 설정할수 있는 사이즈
: physical network 마다 다른 MTU를 가지고 있다.(Ethernet ; 1500bytes, FDDI : 4352bytes...)
: Path MTU = 경로(packet이 sender에서 rcv까지 가는데 경유하는 모든 router)중에서 가장 작은 MTU - Fragmentation
: 큰 사이즈의 datagram을 router의 MTU에 맞게 작은 사이즈로 나누어 주는 작업을 의미한다. - Indentification : 같은 datagram에서 만들어진 fragment임을 알려준다.
- FLAGS : DF(Don't Fragment),MF(More Fragment) Fragment가 더 이어지는 가 아닌가를 표시하여준다.
- Flagment offset : 원래 데이터에서 몇번째 바이트의 데이터인가를 의미한다
- Reassembly
-> fragment들이 목적지에 도착하여 재조합이 되는 과정을 의미한다.
-> 단점
- 효율적이지 못하다
- 하나의 fragment에서 오류나 손실이 발생하게 되면 같은 ID를 가지는 모든 fragment를 버려야 한다.
- fragment들이 reassembly timer가 끝나기 전까지 오지 못하면 이전의 fragment들은 다 버려지게 된다.
-> IPv4
- 모든 IP 주소는 각각의 고유의 주소값이다.
- 계층적 구조를 가지고 있다.(Net ID + Host ID)
- 32bit 의 길이를 가진다.
-> Special address
- 0.0.0.0 : Unknown host(sources) (DHCP 설정시 자신의 host번호를 모를때 0.0.0.0으로 설정이 되게된다.)
- 255.255.255.255 : Broadcast를 의미한다. (동일 네트워크 내의 모든 IP로 보내게 된다.)
- 129.34.255.255 : 129.34 network 내에서의 Brodadcast를 의미한다.
- 0.0.0.3 : 현재 네트워크 내에서 호스트 번호가 3인 host
- 127.0.0.1 : local server(자기 자신을 말함.)
-> Classful IP Addressing
- Subnetting
AS 들을 여러개의 피지컬 네트워크로 나누어 사용을 하게 되는것을 의미한다. 이때 각각의 subnet들은 유니크한 subnet ID를 가지게 된다.
- Host ID 부분이 network ID부분과 subnet ID 부분으로 나누어 지게 된다.
-> Default subnet mask
Class | In Binary | In Dotted-Decimal | using Slash |
---|---|---|---|
A | 11111111 00000000 00000000 00000000 | 255.0.0.0 | /8 |
B | 11111111 11111111 00000000 00000000 | 255.255.0.0 | /16 |
C | 11111111 11111111 11111111 00000000 | 255.255.255.0 | /24 |
- 외부에서 해당 사이트로 routing을 원할때 network ID로만 구분하여 보내진다.
- AS내에서 subnet과 network ID를 통하여 routing을 시키게 된다.
- (AS : 같은 라우팅 프로토콜을 사용하는 라우터, 서브 네트워크의 집합을 의미한다.)
ex) In a Class B network
- if subnet mask = 255.255.192
- (11111111 11111111 11000000 00000000)
- 앞의 16 bit가 network를 의미하는 부분이 되고
- 바로 뒤의 2비트가 subnetmask가 된다.
- max. number of subnet = 2^2 = 4개
- max. number of hosts per a subnet = 2^14-2(-2는 private network를 고려한것)
- CIDR - Supernetting(Classless 헝태)
-> Class B부터 각각의 network 마다 사용할수 있는 주소가 너무 작은것이 문제가 되기 시작했다.
- CIDR을 사용하기 위해서는 모든 router들이 CIDR의 개념을 알고 있어야 한다.
- CIDR의 표기법은 (Address/Count) : 123.123.10/24 (24는 어디까지가 Network ID인지를 알려주는 것이다.)
- 좌측부터 넷마스크를 취하여 고정길이가 아닌 가변적인 길이로 network ID를 설정하여 주는 방식이다.
- 블럭 사이즈를 알기 위해서 Bit mask를 사용한다.
- 단체 C에서 사용하는 network 가 123.123.98 ~ 123.123.123.255라고 가정한다.
98(01100010), 123(01111011)여기서 공통인 부분은 011까지이다.
-> bit mask = 255.255.224.0
-> 255.255.255.98/19라고 표현을 할수가 있다. - use a longest match paradigm to select a route
- example
'네트워크 > 강의정리' 카테고리의 다른 글
CH5. Network Layer : The Control Plane (0) | 2020.01.14 |
---|---|
CH4. Network Layer(2) (0) | 2020.01.11 |
CH3. Transport Layer(4) (0) | 2020.01.05 |
CH3. Transport Layer(3) (0) | 2020.01.03 |
CH3. Transport Layer(2) (0) | 2020.01.01 |
Comments