네트워크 프로토콜 계층은 OSI 7계층과 TCP/IP 4계층으로 나눌 수 있다.
IP프로토콜 보다 더 높은 계층에 TCP 프로토콜이 존재하기 때문에 IP 프로토콜의 한계를 보완할 수 있다.
TCP/IP 4 계층은 OSI 7 계층보다 먼저 개발되었으며 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지는 않는다. 실제 네트워크 표준은 업계표준을 따르는 TCP/IP 4 계층에 가깝다.
채팅 프로그램에서 메시지를 전송할 때의 과정
- HTTP 메시지가 생성되면 Socket을 통해 전달된다.
프로그램이 네트워크에서 데이터를 송수신할 수 있도록, "네트워크 환경에 연결할 수 있게 만들어진 연결부"가 네트워크 소켓(Socket)이다.
- IP 패킷을 생성하기 전 TCP 세그먼트를 생성한다. 이렇게 생성된 TCP/IP 패킷은 LAN 카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임 워크에 포함되어 서버로 전송된다.
TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 3 way handshake를 사용하는 연결지향형 프로토콜이다.
연결 방식은 아래와 같다.
만약 서버거 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않는다.
현재는 최적화가 이루어져 3번 ACK를 보낼때 데이터를 함께 보내기도 한다.
UDP란 User Datagram Protocol, 즉 사용자 데이터그램 프로토콜을 말한다.
UDP는 IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다.
TCP 특징과 비교하여 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도를 보장한다.
HTTP3는 UDP를 사용하며 이미 여러 기능이 구현된 TCP보다는 하얀 도화지처럼 커스터마이징이 가능하다는 장점이 있다.
쉽게 말해 TCP와 UDP의 차이는 좋은 기능이 다 들어있는 무거운 라이브러리와 필요한 기능만 들어있는 가벼운 라이브러리로 비교할 수 있다.
체크섬(checksum)
체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.