본 글은 김영한 선생님의 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 정리한 것입니다.
사람들 마다 IP를 가지고 있으며, IP는 두가지 역할을 합니다.
패킷은 시작IP, 도착IP, 기타, 내용을 담아 보내는 통신 단위입니다.
출처 : https://hahahoho5915.tistory.com/15
로 이루어져 있으며,
애플리케이션 계층 - HTTP, FTP로 정리할수 있습니다.
이전에 문제가 되었던 비연결성, 비신뢰성에 관련해서 정보를 담아서 패킷에 담아줌으로써 문제가 해결되게 됩니다.
담기는 정보 : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등등
전송 제어 프로토콜(Transmission Control Protocol)
TCP 3 way handshake 는 클라이언트가 syn (접속 요청) 을 보내게 되면 서버에서 ack(요청 수락) 과 함께 syn 을 보냅니다(syn + ack). 그러면 클라이언트가 ack를 보내면서 서로 신뢰할 수 있는 상태가 됩니다.
사용자 데이터그램 프로토콜(User Datagram Protocol)
UDP 는 IP와 거의 같으나 PORT와 체크섬 정도만 추가된 것이락 볼수 있습니다. 애플리케이션에서 추가작업이 필요합니다.
위에서 비신뢰성, 비연결성을 해결하면 프로그램 구분이 남아있습니다. PORT 가 프로그램 구분을 할수 있도록 해줍니다.
우리가 요청할 때 패킷에 IP 뿐만 아니라 PORT 정보까지 넘기고 있었기 때문에 한 컴퓨터에서 여러 프로그램을 돌릴 수 있었습니다. (IP가 아파트이면 PORT가 몇호 이다.)
우리가 IP를 주소를 기억하기 힘들뿐더러, IP 주소가 바뀌었을 경우 클라이언트입장에서 찾을 수가 없었습니다. 이것을 해결해 주기 위한 것이 DNS(Domain Name System)입니다.