[네트워크] 네트워크 계층 & 전송계층 프로토
3계층 : 네트워크 계층의 대표적인 프로토콜
✅ IP 프로토콜 (Internet Protocol)
역할 : 데이터를 준발하여 패킷을 전달한다.
데이터를 전달만 하고 확인하지 않는다 (속도를 위해서) -> 비연결성, 비신뢰성
- 핵심 개념 중 라우팅이 있다.
- 라우팅은 IP 주소를 기반으로 패킷이 목적지까지 도달하는 최적의 경로를 결정하는 과정이다.
- 라우터(Router)는 네트워크와 네트워크를 연결하고, IP 패킷의 목적지 IP 주소를 확인하여 다음 전송 목적지로 패킷을 전달하는 역할을 한다.
- 패킷의 분할 및 재결합
- IP는 전송해야 할 데이터가 네트워크의 MTU(Maximum Transmission Unit, 한 번에 전송할 수 있는 최대 패킷 크기)보다 클 경우, 데이터를 작은 패킷으로 분할(Fragmentation)한다.
- 분할된 패킷은 목적지에서 다시 원래의 데이터로 재결합(Reassembly)한다.
3계층의 IP 에서 패킷을 데이터그램이라고 한다. 가변길이이며 패킷을 전달하는데 필요한 정보를 담고있다.

| 필드이름 | 크기 | 설명 |
| Version | 4 bits | IP 버전 (4) |
| IHL (Header Length) | 4 bits | 헤더 길이 |
| Type of Service | 8 bits | 우선순위 |
| Total Length | 16 bits | 전체 패킷 길이 |
| Identification | 16 bits | 조각화된 패킷 식별 |
| Flags | 3 bits | 조각화 제어 |
| Fragment Offset | 13 bits | 조각 순서 |
| TTL (Time To Live) | 8 bits | 라우팅 횟수 제한 |
| Protocol | 8 bits | 상위 프로토콜 (TCP=6, UDP=17 등) |
| Header Checksum | 16 bits | 오류 검출 |
| Source IP | 32 bits | 출발지 IP |
| Destination IP | 32 bits | 목적지 IP |
| Options (선택) | 가변 | 특수 옵션 |
* Identification : 데이터그램이 작은 조각으로 분할되는 경우 단편화된 패킷들을 재결합할때 동일한 메시지임을 식별하기 위한 정보
* Flags : D비트와 M 비트가 존재한다.
D비트가 1로 설정되어 있으면 해당 패킷은 단편화하지 않는다.
MTU보다 크기가 크다면 라우터는 이 패킷을 단편화하지 않고 폐기해야 한다. 동시에 ICMP 에 메시지를 송신자에게 보내 해당 사실을 알린다.
- ICMP : 인터넷에서 문제가 생겼는지 알려주는 에러 메시지 전송용 프로토콜
M비트는 해당 패킷이 단편화 되었을때 사용한다. 마지막 조각은 M비트가 '0'으로 설정된다.
이 M 비트를 통해 현재 받은 단편이 원래 패킷의 마지막 조각인지, 아니면 더 많은 조각이 뒤따라올 것인지를 판단
* Header Checksum : 송신자가 전송하는 패킷에 검사합을 함께 보내면 수신자는 패킷과 함께 검사합을 계산해 조건을 만족하면 패킷을 받아들이고, 그렇지 않으면 패킷을 폐기한다.
✅ ARP (Address Resoltion Protocol)
같은 네트워크에 속하는 통신 장치와 통신할때 상대방의 IP 주소는 알지만 MAC주소는 모를때 사용한다.
"IP주소를 MAC주소로 바꿔주는 프로토콜이다."
메시지가 가고자하는 네트워크에 도달하기 위해서는 1홉 통신의 연속을 만들어야 한다.
그런데 홉을 만들기 위해 다음 노드로 패킷을 보내야 하는데 그러기 위해서는 MAC 주소가 필요하다.
하지만 수신지 서버에 MAC 주소를 알 수 없다. 이럴때 사용하는 것이 ARP 이다.
*ARP는 같은 네트워크에서 하는 프로토콜이다. 직접적으로 네이버 서버의 MAC주소를 알아내는 것이 아니다.
동작 과정
1. 내 컴터는 게이트웨이의 IP(ex: 192.168.0.1 )은 알지만 MAC주소는 모른다.
그래서 내 ARP 캐시(ARP Table)를 확인함 근데 없으면 ARP 프로토콜을 시작한다.
2. ARP Request를 생성하여 ARP 요청 패킷을 보낸다. 이더넷 프레임에 담아서 같은 네트워크에 모든
네트워크에 브로드캐스트로 전송된다.
3. 네트워크 장치들이 ARP 요청을 수신하여 Target IP가 자신의 것인지 확인하여 아니면 폐기
대상 장치가 확인하여 유니캐스트로 응답 전송
4. 내 컴터는 응답을 확인하여 ARP 캐시 (ARP Table) 에 저장한다.
5. 이후에는 캐시를 활용하여 MAC주소를 얻어서 통신한다.
4계층 : TCP & UDP
해당 주제는 다른 글에서 자세히 다루어 보겠다.
https://develop-actas.tistory.com/102
[네트워크] 전송 계층
전송 계층은 사용자가 실행하는 프로그램을 포트를 통해 식별하며IP 프로토콜의 한계(신뢰성 통신) 를 보완해준다. * 포트 : 네트워크에서의 애플리케이션 식별 정보 IP프로토콜은 신뢰할 수 없
develop-actas.tistory.com