📌 References
https://velog.io/@jehjong/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%9D%B8%ED%84%B0%EB%B7%B0-TCPIP-4%EA%B3%84%EC%B8%B5
어떤 방식으로 데이터를 주고받으며 통신할 것인가?
IP Packet
통신 데이터의 단위로, 출발지와 목적지의 IP와 같은 정보가 포함되어 있다.
비연결성
패킷을 받을 대상이 없거나 서비스 불능 상태여도 클라이언트가 서버의 상태를 파악할 방법이 없기 때문에 패킷을 그대로 전송
비신뢰성
중간에 장애가 생겨 패킷이 사라질 수도 있고, 클라이언트가 의도하지 않은 순서로 패킷이 도달할 수 있음
위와 같은 통신 과정에서의 호환성 문제를 막기 위해, 데이터를 주고 받는 네트워크 과정을 여러 계층으로 세분화하여 OSI 7 Layer로 만들어 표준으로 지정했다. 이로 인해 사람들이 통신의 흐름을 이해하기 쉬워졌다.
IP 프로토콜보다 높은 계층인 전송 계층에 TCP 프로토콜이 존재하기 때문에 IP 프로토콜의 한계를 보완할 수 있다.
각 계층은 담당하는 위치마다 그 역할이 구분되어 있기 때문에 서로간의 간섭이 최소화되어 네트워크 통신의 편리성을 높일 수 있다. 또한 통신 장애가 발생했을 때, 다른 계층을 건드리지 않고 문제가 생긴 계층만 고치면 되기 때문에 유지보수성이 높아진다.
하지만 7계층으로 다소 복잡하기 때문에, 보다 단순한 TCI/IP 4 Layer를 실제로 사용하고 있으며 OSI 7 Layer는 통신 장비 개발 등에 참조하기 위한 표준으로 사용되고 있다.
OSI 7 Layer가 단순화된 버전으로, 사실상 표준이다.
✔️ TCP/IP 4 계층은 OSI 7 계층보다 먼저 개발되었으며 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지는 않다.
1계층 - 네트워크 인터페이스 계층
[데이터 단위 : 프레임]
물리적인 데이터 전송을 담당한다.
논리주소가 아닌 물리주소(MAC)를 참조해 장비간 데이터를 전송한다.
Ex. Ethernet, PPP, Token Ring
2계층 - 인터넷 계층
[데이터 단위 : 패킷]
통신 노드 간의 IP 패킷 전송 및 라우팅을 담당하여 서로 다른 네트워크 간의 통신을 가능하게 한다.
최종 목적지까지 정확하게 연결되도록 연결성을 제공한다.
Ex. IP, ICMP
3계층 - 전송 계층
[데이터 단위 : 세그먼트]
통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
Ex. TCP, UDP
4계층 - 어플리케이션(응용) 계층
[데이터 단위 : 데이터/메시지]
사용자와 가장 가까운 계층으로 사용자와 어플리케이션이 소통할 수 있게 한다.
TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
Ex. HTTP, FTP, DNS, 파일 전송, 이메일
IP Packet를 보완하여 IP 정보 및 PORT, 전송 제어, 순서, 검증 정보까지 포함한다.
TCP/IP Layer의 전송계층은 애플리케이션 계층의 프로그램에서 전달받은 데이터를 목적지 애플리케이션 계층의 프로그램까지 전달한다. 즉 출발지와 목적지의 컴퓨터와 애플리케이션 사이에서 데이터 전달을 담당한다. 데이터가 제대로 전달되지 않았을 때 재전송을 담당하는 계층이다.
전송계층의 대표적인 프로토콜로 TCP와 UDP가 있다. TCP는 속도보다 정확성을, UDP는 정확성보다 속도를 지향한다.