티스토리 뷰
Layer 3
- Network Layer라고도 부른다
- 1 : 1이 아닌 여러 구성들이 얽혀 있는 네트워크 구조에서 재역활을 하는 Layer이다
- Network에서 end-to-end로 Packet을 전달해주는 역활
- 각 packet이 제 경로를 찾도록 해준다
Layer3 흐름
- Layer3가 네트워크에서 어디로 가야할지 알려준다.
- 1 hop 이동 후 거기서 다시 확인, Layer 3에서 해당 패킷을 보고 자신의 것이 아니라면 목적지에 맞는 곳으로 다시 보내라고 내려준다
- 제대로 목적지에 도착한 경우 layer 3에서 확인 후 위 계층으로 올려준다
end에서 목적지 end까지 packet을 전달하는데, 네트워크 상에서 라우터의 layer 3에서 어디로 전달되야 하는지 알려준다, 라우터의 네트워크 계층은 네트워크 도로 상에서 이정표 역활을 수행한다고 볼 수 있다
Router
- packet forwarding(패킷 전송)을 주 역활로 하는 구성요소
- Network 내에서 적절한 방향으로 packet을 전달한다
- Sub-Network 간 packet을 전달한다 (라우터가 서브네트워크를 연결)
네트워크 계층 Layer 3의 역활
- Forwarding (전송)
- input port로 들어오는 packet을 다른 out port로 전송하는 동작
- Data plane - 데이터만 주고 받는 경로 (반대로 Control plane, 제어 정보만 주고받는 경로도 존재)
- Router-local action
- Routing
- path를 파악하기 위한 제어 동작으로, forwarding table을 만들기 위한 동작 (경로 찾기)
- Control plane - 제어 정보만 주고 받는 경로(rout를 파악하기 위한 것이다)
- network wide process - 라우터, 링크의 상태까지 살펴봐야 하므로
- rout를 파악하기 위한 것
Router
L3 관점에서 능동적인 역활을 하는 network 요소
- Packet 생성 혹은 소비하는 일 없이 중간에서 packet을 전달하기만 한다
- 따로 OS가 올라가거나 하지 않는다, 패킷 포워딩, 라우팅 만 수행
- 계층도 Phisical Layer, Data link Layer, Network Layer 로 3개의 계층만이 존재한다
- Layer 1, 2 는 하나의 기기에서 하나의 기기로 1 hop의 전달만을 수행한다
- Layer 3에서 그렇게 온 패킷에 대해 자기껀지 아닌지를 판단 후 적절한 길을 찾아서 전송하게 되는 것이다
Frowarding Table (routing table)
Router들이 각각 보유한 것으로, in-port로 들어온 packet에 대해 out-port로 내보낼 규칙을 갖는다
- 라우터가 forwarding을 할 때, 패킷의 header 정보(IP 정보)를 보고 forwarding table과 비교해서 어느 경로로 패킷을 내보낼지 정하게 된다
Routing Algorithm
forwarding table을 만들기 위한 각 Router의 동작 매커니즘을 정의한 것
- routing protocol에 의한 메시지를 수신해서 생성한다
Hub(L1) vs. Switch(L2) vs. Router(L3)
Hub
L 1에서의 장치로, Physical Layer로 온 신호가 여과없이 그대로 Hub에 연결된 모든 end-node에 전달된다
역활은 증폭기 정도로, 전달 받은 신호가 약하면 증폭해서 좀 더 robust하게 한 후 다음 노드로 전달해준다
Switch
L 2에서의 장치로, Link interface 수준에서 전달된다. 컴퓨터에 연결된 공유기에서 유선(연결된 link)을 통해 전달되게 하는 역활
MAC(medium access control) address를 기반으로 전달하게 된다. 예를 들어 local network에서 와이파이등 한 링크를 통해서 스위치로 들어오면 L2에서 다른 link로 전달할 때 사용하는 것이 packet switch
Router
L3에서의 장치로, 전달 받은 패킷의 헤더를 통해 IP Address를 보고 판단해서 어느 쪽 네트워크로 보낼지 판단한다
network-wide 관점에서 path를 결정한다
Network Service Model
일반적으로 network layer가 상위 계층에게 보장해주는 서비스
Guaranteed Delivery
- packet을 상대방에게 전달
Guaranteed delivery with bounded delay
- packet을 상대방에게 전달하고 & 특정 지연 시간 기준내에 전달한다
In-Order packet delivery
- packet을 순서대로 전달한다
Guaranteed Minimal bandwidth
- 최소한의 전송률을 보장
Guaranteed Maximum jitter
- packet의 inter-arrival이 일정하게 들어오는 수준을 보장한다
- (인터넷 전화 등에서 다음 패킷이 들어오는 간격의 시간에 제한을 두는 것, real time 서비스에 대한 품질을 보장할 수 있다)
Datagram networks
- Connectionless Service를 제공하는 L 3
- 패킷(데이터그램)을 전달을 할 때, 네트워크 상에서 어떤 경로를 거쳐서 전달할지 정해 놓는 것이 아니라, 단지 첫 출발 노드에서 도착 노드의 IP Address만 명시해주면 알아서 중간에 라우터들이 전달해주게 되는 것
- Datagram (packet)을 기준으로 전달한다
Internet Protocol
Layer 3 protocol 의 하나의 예시이다 (IETF 표준)
- DARPA internet project를 통해 최초로 개발
- 현재 인터넷이 IP를 Layer 3 Protocol로 사용한다
- 거의 대부분의 통신 시스템 / 네트워크가 IP를 사용하므로, 오늘날 network 상에서 통신을 하려면 반드시 필요한 프로토콜이다
Connectionless operation
- 상대방 entity와 연결을 맺는 개념이 없고, 그때그때 마다 도달하는 packet을 기준으로 동작한다
- Flexible하면서 동작 측면에서 overhead도 덜하다
서로 다른 링크 환경 (L1, L2)에서도 IP는 network를 형성 시켜줄 수 있는 강력한 호환성을 갖는다
- 어떤 종류의 L1, L2더라도 그위에 IP프로토콜을 얹으면 end-to-end 시스템간에 통신을 할 수 있다
(와이파이, 이더넷, LTE 등등 다양한 L1, L2 환경에서도 IP를 통해 통신할 수 있다)
Internet Protocol를 구성하는 3가지 Protocol
Routing protocol
- forwarding table 형성
IP protocol
- datagram 전달
ICMP(internet control management protocol) protocol
- 관리를 위한 부가적 절차
Datagram Format
IPv4 datagram : IP protocol 동작 상의 핵심 존재
version number : IPv4, IPv6 - 주소의 형태가 0.0.0.0 이냐 0.0.0.0.0.0 이냐의 차이
Header length : option 부분을 포함한 header의 길이
Type of Service (TOS) : IP datagram 유형
Datagram length : Data를 포함한 길이
Identifier, flag, fragmentation offset : IP fragmentation 관련 제어 정보
Time to live (TTL) : datagram의 Life Time
- (제대로 전달되지 못한 패킷이 네트워크상에 쌓이면 오버헤드를 잃으킬 수 있으므로 일정 시간 후 제거)
Protocol : 상위 프로토콜의 종류
Header checksum : header의 Paritiy
IPv4 Addressing
- IP에서 사용하는 32bit (4byte) 주소
- host나 router의 interface별로 각각 존재
- 2^32, 약 42억개 존재
- x.y.z.w 형태로 각 숫자는 0~255, 8bit
- 일반적으로 internet상에서 ip주소는 globaly unique하다(할당받은 유니크한 ip주소를 192.168.0.0 ~ 의 형태를 돌려 쓰는 것)
- NAT영역에서는 locally unique하면 된다
Subnet
- network 관점에서 그룹으로 묶이는 주변의 host 그룹
- 물리적으로 비슷한 위치에 있고, L1 / L2 수준에서 같은 영역에 있다
subnet
- IP 주소 앞 부분(prefix)로 지칭
- 223.1.1.0 / 24 → 24는 bit수로 앞의 24bit가 자신의 ip의 서브넷 주소에 해당함을 의미
- subnet에 속하는 host들의 IP주소 앞부분은 subnet IP주소와 동일하다
- 즉, 같은 공유기를 사용하는 집단은 서브넷 마스크가 동일할 것
- 223.1.1.xxx 의 형태
- subnet간 routing은 이 subnet prefix로만 판단될 수 있다
- (라우터에서 패킷 포워딩시 IP의 앞에 24bit를 보고 전달한다는 것, 서브넷이 24일 경우)
Gateway
- subnet에서의 대문 역활
- subnet에 유입되는 packet을 가장 먼저 받아서 처리한다, 먼저 받아서 서브넷 내 기기들에 모두 퍼트려준다
- subnet에서 생성된 packet이 최종적으로 나가는 관문, 바로 라우터에게 전달
- 보통 IP끝자리가 1
IP Assignment
- 한 서브넷 안에 포함될 수 있는 host 수
- prefix를 제외한 나머지 IP주소 bit가 표현 가능한 개수1은 Gateway를 위해, 255는 브로드캐스트를 위해 사용
- 따라서, 서브넷마스크가 24bit라면 253개의 host가 할당 가능하다
- 보통 0, 1, 255(8bit 시) 은 사용하지 않는다
- Block of address에 대한 할당
- ISP(KT, sk broadband 등)가 가진 IP를 기관이 할당 받는다
각 host가 IP 주소를 받는 방식
- 기관 담당자에게 직접 신청해서 수동으로 설정
- DHCP (dynamic host configuraion protocol)에 의해 자동으로 할당 받는다
(카페 와이파이에 접속할 때마다 알아서 IP주소를 배정해주고 빼주고 하는 것)
IP Datagram Fragmentation
IP는 공통된 layer인 반면 하위 계층은 다양한 방식이 존재한다
- L1 - L2 방식에 따라 기본 전송 단위 bit수가 다를 수 있다
- L2 별로 서로 다른 Maximum Transmission Unit (MTU) 존재
- IP datagram은 MTU보다 작아야 L2 전송이 가능하다
라우터 입장에서 서로 다른 MTU의 Link가 각 interface에 존재할 경우
- 한쪽에서 큰 datagram이 들어와서 더 작은 MTU의 interface로 전달해야하는 경우가 발생할 수 있다
- → 이 경우 Router는 Fragmentation을 해야한다
따라서, 필요시 라우터는 IP datagram을 쪼개야 한다 → 여러개의 fragment로 나눔
- Destination의 IP의 service 계층으로 올리기 전에 reassemble이 되어야 한다
- (Protocol Transparency)
- Destination Host측 IP Layer는 fragment를 모두 수신해서 original datagram으로 복구 한다
- (IP header의
Identification
,flag
(flag yes/no),fragmentation offset field
를 이용한다)
- 3980 byte를 전달하고자 한다
- MTU가 1500이라서 fragmentaion을 진행 → 1480, 1480, 1020 byte 크기 3개로 쪼갠다
- 이때, 각 fragment는
offset
으로 몇번 byte부터 시작하는지에 대해 갖는다 Flag
는 뒤에 fragment가 더있는지 여부를 알려준다ID
는 fragment끼리 같은 datagram을 이루는 것들인지 확인하는 용도
- 이때, 각 fragment는
Internet Control Message Protocol (ICMP)
host 혹은 router간 Layer 3 수준에서 message를 주고 받게 하는 프로토콜로, Ping(핑)을 생각할 수 있다
→ 실제 데이터를 전달하는 용도가 아닌, network 관리 측면에서 활용
- 주로 network layer 관점에서 IP 연결 상태를 확인
ICMP message : 일반 IP datagram 형태의 payload 부분에 담겨있다
(실제 프롬프트에서 ping 입력시 해당 서버와 메시지를 주고받는 프로토콜을 수행할 수 있다)
- ICMP Type에 따라서 Code가 존재하는데 , link 상황에 맞게 존재한다
IPv6
왜 등장?
- IPv4 주소가 턱없이 모자르다
- 2 level addressing (network / host)는 비효율적이다
- 연결되지 않는 IP는 사용하지 못한다
- IP를 사용하고자 하는 host가 점점 많아진다
- 다양한 서비스에 대한 QoS (Quality of Service) 지원 필요
- ipv4로는 주소가 부족해서 해주기가 힘듬
- (voice, video streaming etc)
IPv6
- IP 주소가 128bit로 확장 되었다
- 40bit 고정 크기의 header로 정의 → option mechanism 개선
- Flow Labeling and Priority
- → (ip주소가 정말 많아서) 모든 연결에 대해서 ip를 할당할 수가 있으므로, 모든 연결에 대해 QoS를 제공, 관리할 수 있다
- flow 별 quality of service 관리가 가능
- Fragmentation : source / destination에서만 가능하다
- Header checksum이 없다
'CS > 네트워크 전공 수업 정리' 카테고리의 다른 글
9. Layer 4 : Transport Layer (0) | 2021.04.28 |
---|---|
8. Layer3 : Routing (0) | 2021.04.28 |
6. Layer 1 & 2 (0) | 2021.04.27 |
5. Protocol Function 3 (2) | 2021.04.27 |
4. Protocol Function 2 (0) | 2021.04.27 |
- Total
- Today
- Yesterday