TCP/IP 프로토콜 4계층에 대해 알아보자.
TCP/IP는 무엇일까요?
TCP는 OSI 7 계층 중 4 계층 전송 계층의 프로토콜이고, IP는 3 계층 네트워크 계층의 프로토콜입니다.
TCP/IP는 인터넷 통신 세계에서 가장 많이, 표준으로 사용되고 있는 TCP와 IP 프로토콜을 주축으로 한 프로토콜 집합을 말합니다.
인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고 받을 수 있도록 하는 표준 프로토콜입니다.
인터넷 프로토콜 스위트(Internet Protocol Suite)라고 부르기도 합니다.
TCP/IP 4계층
OSI 7 계층과 비교하여 TCP/IP 4 계층을 알아보겠습니다.
TCP/IP 모델은 OSI 모델의 5~7 계층을 하나의 애플리케이션 게층으로 묶고,
1,2 계층을 하나의 네트워크 계층으로 묶습니다.
네트워크 통신에 중요한 3 계층의 IP 프로토콜과 4 계층의 TCP 프로토콜을 중심으로 재구성한 프로토콜 집합입니다.
즉, TCP/IP 프로토콜 통신 과정에 집중해 OSI 모델을 좀 더 단순화 시킨 모델입니다.
계층
1 계층 - 네트워크 엑세스 계층 (Network Access Layer)
OSI 모델에서 물리 계층과 데이터 링크 계층을 묶은 계층입니다.TCP/IP 패킷을 네트워크로 전달하거나 받아오는 역할을 합니다.
- 대표 프로토콜 :
Ethernet
등 - 주요 기능
- 에러 검출
- 패킷의 프레임화
- 대표 프로토콜 :
2 계층 - 인터넷 계층 (Internet Layer)
OSI 모델에서 네트워크 계층에 해당합니다.3 계층인 전송 계층에서 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들어 전송합니다.
- 대표 프로토콜 :
IP
,ICMP
,ARP
,RARP
등 주요 기능
- Addressing
- Packaging
- Routing
- 2 계층에서 사용하는 주소
- MAC 주소
물리적인 주소로 장비의 고유 값, 12개의 16진수로 구성 (aa-aa-aa-bb-bb-bb) - OUI
앞의 6개 (aa-aa-aa)는 IEEE에서 부여한 제조회사 식별 ID - 고유번호
뒤의 6개 (bb-bb-bb)는 제조회사에서 부여한 장비 식별 번호
- MAC 주소
- 대표 프로토콜 :
3 계층 - 전송 계층 (Transport Layer)
OSI 모델에서 전송 계층에 해당합니다.IP 주소와 Port 번호를 이용하여 프로세스와 통신합니다.
대표 프로토콜 :
TCP
,UDP
등주요 기능
- 통신 노드 간의 연결 제어
- 신뢰성 있는 데이터 전송
3 계층에서 사용하는 주소
IP 주소
WAN에서 통신할 때 사용하는 주소로 인터넷에 연결된 모든 컴퓨터 자원을 구분하는 고유번호입니다.- IPv4 주소 (Classful IP 주소)
10진수 숫자 8bit씩, 총 32 bit로 구성됩니다. (총 4byte)
0.0.0.0 ~ 255.255.255.255
- IPv4 주소 (Classful IP 주소)
특수한 IP 주소
서브넷 마스크
IP 주소에 대한 네트워크 대역을 규정합니다.
2진수로 표기된 연속된 1과 뒤에 이어지는 0으로 구성됩니다.즉, 1에서 0으로 바뀌는 지점을 네트워크 대역 구분점으로 활용합니다.
게이트웨이 주소
외부와 통신할 때 사용하는 네트워크의 출입구입니다.
주로 가장 낮거나 가장 높은 ip 주소를 사용합니다.
3 계층에서는 다음 3가지를 활용해 통신합니다.
추가
- 공인 IP
- 사설 IP
- NAT
4 계층 - 응용 계층 (Application Layer)
OSI 모델에서 세션 계층, 표현 계층, 응용 계층에 해당합니다.프로그램과 직접 상호작용하는 계층으로 데이터를 처음 받거나 보내는 곳입니다.
즉, MAC 주소와 IP 주소를 이용해 상대방의 주소를 찾아낸 후 해당 프로그램을 찾아가는 역할을 수행합니다.
대표 프로토콜 :
HTTP
,FTP
등주요 기능
- 사용자가 접근할 수 있는 인터페이스 제공
4 계층에서 사용하는 주소
Port 번호 특정 프로그램이 사용하는 번호로 Port 번호 하나당 프로그램 하나만 사용합니다. 0 ~ 65535 (2byte)까지 사용 가능
Port 번호 분류 (3 가지)
Well-Known Port (System Port) , 0 ~ 1024
FTP : 20 or 21, SSH : 22, TELNET : 23, DNS : 53,
DHCP : 67 or 68, HTTP : 80, HTTPS : 443 등Registered Port (User Port), 1024 ~ 49151
많이 알려진 서비스들이 등록되어 있는 Port Oracle DB 서버 : 1521, Mysql 서버 : 3306 등Private Port (Dynamic Port) , 49152 ~ 65535 사용자들이 사용하는 Port입니다.
그럼 여기서 프로토콜이란 무엇일까요?
Protocol 프로토콜
프로토콜은 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화한 통신 규약을 말합니다.
인터넷을 통해서 이메일을 보낼 때는 SMTP (Simple Mail Transfer Protocol)
이 규정되어 있고 전 세계의 메일 서버가 이를 따르기 때문에 어디서든 메일을 주고 받을 수 있습니다.
또한, 가장 많이 사용되는 월드 와이드 웹(WWW)은 HTTP (HyperText Transfer Protocol)
이 규정되어 있어 웹 서버와 웹 브라우저가 이를 따르기 때문에 전 세계 어디서든 웹을 이용할 수 있습니다.
기본 요소
- 구문 (Syntax) : 전송할 데이터 형식, 부호화, 신호 레벨 등 구성
- 의미 (Senmantics) : 두 기기 간의 효울적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보
- 시간 (Timing) : 두 기기 간의 통신 속도, 메세지의 순서 제어 등을 규정
기능
- 단편화와 재결합
단편화 : 송신 측에서 전송할 데이터를 전송에 알맞은 일정 크기의 작은 블록으로 자르는 작업
재결합 : 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 작업 - 캡슐화
캡슐화 : 단편화된 데이터에 송수신 주소, 오류 검출 코드 등 여러 정보를 부가하는 것
- 흐름 제어
- 오류 제어
- 순서 제어 등
패킷 Packet
패킷이란 네트워크 상에서 전달되는 데이터로 전달하는 데이터의 형식화된 블록을 말합니다.
즉, 네트워크를 통해 전송하기 쉽도록 분할된 데이터 전송 단위입니다.
분할되어 동시다발적으로 데이터를 주고 받음으로써 에러에 따른 재전송이나 송수신 시 걸리는 시간 등의 문제를 해결할 수 있습니다.
패킷의 캡슐화, 역캡슐화
캡슐화
데이터 송신 시, 데이터는 TCP/IP 4 계층의 상위 계층에서 하위 계층으로 이동하며, 계층을 이동할 때마다 필요한 정보를 헤더에 추가해 패킷으로 만드는 과정을 말합니다.
역캡슐화
데이터 수신 시, 데이터는 TCP/IP 4 계층의 하위 계층에서 상위 계층으로 이동하며, 헤더를 읽고 처리한 후, 헤더를 제거하는 과정으로 받은 패킷을 확인하는 과정을 말합니다.
프로토콜 데이터 단위 (Protocol Data Unit, PDU)
PDU는 계층에서 처리하는 데이터 단위를 말하며, 추가된 Header와 상위 계층의 데이터가 합쳐진 한 계층의 전체 데이터입니다.
제어 정보를 포함하는 헤더(Header)와 데이터 자체인 페이로드(Payload)로 구성됩니다.
헤더(Header)를 PCI(Protocol Control Information)로 페이로드(Payload)을 SDU(Service Data Unit)로 명칭하기도 합니다.
즉, PDU = PCI + SDU
PDU는 각 계층을 지나오면서 데이터 자체는 동일하지만 헤더 정보가 추가되면서 명칭이 달라집니다.
간단하게 정리하자면
- 4 계층 : Segment
- 3 계층 : Packet
- 2 계층 : Frame
- 1 계층 : Bit
참조
- https://blackrimslifestory.blogspot.com/2018/02/ethernet-frame.html
- https://lxxyeon.tistory.com/155
- https://hwannny.tistory.com/117
- https://wooono.tistory.com/507
- https://nordvpn.com/ko/blog/tcp-ip-protocol/
- https://nirsa.tistory.com/28
- https://nirsa.tistory.com/29
- https://velog.io/@rlacksals96/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP%EC%99%80-3way-handshake
- https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-TCP-IP-%EC%A0%95%EB%A6%AC-%F0%9F%91%AB%F0%9F%8F%BD-TCP-IP-4%EA%B3%84%EC%B8%B5