Layer 3 : 네트워크 계층
역할
네트워크간의 호스트와 호스트의 통신을 책임
주소식별자
논리주소 : IP주소 (4 byte)
ipconfig, ifconfig
기능
- 경로제어(Routing)
기타
- 게이트웨이 : 다른 네트워크에 있는 호스트와 통신하기 위해 처음으로 통신하는 다음 노드
- 각 네트워크는 door 역할을 한다.
구성요소
- PDU : 패킷(Packet)
- 프로토콜 : IP, ICMP 등
- ICMP : 3계층에서 오류 제어를 위한 프로토콜
- ARP(Address Resolution protocol) : 통신하려고 하는 IP주소가 부여된 노드의 mac주소를 찾아내기 위해 필요한 프로토콜
- 장비 : 라우터, L3 스위치
네트워크 계층(Network Layer)은 3계층으로 논리적 주소를 기반으로 전송경로를 결정해준다. 또한 헤더(Header)의 내용을 수행하고 분할 네트워크들을 구분하고, 목적지로 데이터를 전달하기 위해 네트워크를 찾아주는(패킷을 네트워크를 통해 발신지에서 목적지까지 전달해준다.) 역할을 수행한다.
네트워크 계층의 주요 기능들로는 논리 주소를 지정, 라우팅이 있다.
- 논리 주소는 라우팅과 관련된 주소이며 IP Address가 해당한다.
- 라우팅은 패킷이 최종 목적지에 전달될 수 있도록 경로를 지정하거나 교환 기능을 제공한다.
Layer 4 : 전송 계층
역할
프로세스와 프로세스의 통신을 책임지는 역할
주소 식별자 : 포트 주소 (2byte)
- 웹서버 : 80
- 암호화된 웹서버 : 443
- FTP 서버 : 21
- SSH : 22
- Telnet 서버 : 23
- 메일 서버 : 25
- DNS 서버 : 53
- ...
기능
- 완벽하고 마지막 단계의 오류제어
- 완벽하고 마지막 단계의 흐름제어
- 연결(세션)제어
- 3way handshaking
- 분할(Segmentation) (단편화(fragmentation) 3계층)
구성요소
- PDU : 세그먼트(Segment)
- 프로토콜 : TCP, UDP , ARP, RTP
- 장비 : 게이트웨이, L4 스위치
전송 계층(Transport Layer)은 엔드 시스템 및 호스트(Host) 간의 데이터 전송 조율을 담당하고 보낼 데이터의 용량과 속도, 목적지 등을 처리한다. 전송 계층의 예 중에서 가장 잘 알려진 것은 전송 제어 프로토콜(TCP)이다. TCP는 인터넷 프로토콜(IP) 위에 구축되며 기기의 IP 주소가 여기서 작동한다. 결론적으로는 서비스를 구분하고 데이터의 전송 방식을 담당하는 것이 전송 계층이다.
전송 계층의 프로토콜로는 두 가지 종류가 있으며, 각각 TCP(Transmission Control Protocol)과 UDP(User Datagram Protocol)이다.
- TCP는 전송 제어 프로토콜로 신뢰성이 있고, 순서가 보존되는 전송 시스템이다. 혼잡 제어(Congestion Control), 흐름 제어(Flow Control), 연결 설정(Connection Setup) 등등 여러 오류들을 제어한다. 웹 브라우저들이 월드 와이드 웹(WWW)에서 서버에 연결할 때 사용되며, 이메일 전송 및 파일 전송에도 사용된다.
- UDP는 사용자 데이터그램 프로토콜로 신뢰성이 없고, 순서가 보장되지 않는 전송 시스템이다. 꼭 필요한 기능인 전송기능만 사용하고, 오류 제어와 같은 추가 기능을 필요로 하지 않는 애플리케이션에 사용된다. 추가 기능이 없기 때문에 오버헤드가 작고 지연 시간이 짧다는 장점이 있다.
전송 계층의 주요 기능들로는 흐름 제어, 오류 제어, 연결제어(Three-Way Handshaking), 분할과 병합, 서비스 프리미티브 등등이 있다.
- 흐름 제어는 송신과 수신 호스트의 전송 과정에서 발생하는 속도 차이를 제어해주는 기능이다. 수신자가 송신자의 전송 속도보다 느리게 수신하여 버퍼 용량을 초과시켜 데이터를 분실시킨다. 이후 타임아웃 기능을 통한 재전송을 유발한다.
- 오류 제어는 데이터가 변형되거나 분실 오류 시 재전송 기능으로 복구를 수행하는 기능이다. 수신자의 요구(부정 응답) 또는 송신자의 판단(타임아웃)에 따라서 오류가 발생한 사실을 알게 되었을 때 오류를 처리한다.
- 연결제어(Three-Way Handshaking) 과정
- A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.
- B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
- A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.
- 분할과 병합은 상위 계층에서 요구한 데이터의 크기가 본 계층에서 처리할 수 있는 크기보다 클 경우에 수행한다. 분할은 데이터 전송 전 적합한 크기로 나누는 과정이고 병합은 수신한 데이터를 원래 크기로 다시 모으는 과정이다.
- 서비스 프리미티브는 전송 계층 서비스를 사용하기 위한 인터페이스이다. 전송 계층에서 비연결성 서비스뿐만 아니라, 신뢰성이 향상된 연결형 서비스도 제공한다.
출처: https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake?category=702276
'보안 기초 > 인터넷 프로토콜' 카테고리의 다른 글
OSI 7계층 (응용) (0) | 2021.09.27 |
---|---|
OSI 5,6계층 (세션, 표현) (0) | 2021.09.27 |
OSI 1,2계층(물리, 데이터링크) (0) | 2021.09.27 |
OSI 7계층 정의 (0) | 2021.09.27 |