Post

[HTTP]인터넷 프로토콜

인터넷 네트워크

인터넷 프로토콜

인터넷 세상은 서로 통신을 하기위해 ip주소를 받게된다. 인터넷 프로토콜은 지정된 ip주소로 패킷이라는 통신 단위를 통해 데이터를 전달 할수있는 역할을 한다.

전송된 패킷은 여러개의 노드를 거쳐서 목적지 까지 이동하게 된다.

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다.
  • 비신뢰성
    • 중간에 패킷이 사라지는 문제나
    • 패킷이 순서대로 오지 않는 문제를 해결할 수 없다.
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분할수 있는 방법이 없다.

TCP

전송 제어 프로토콜(Transmission Control Protocol)

  • 연결 지향
    • 상대와 연결한후 전송한다. 3 way handshake
  • 데이터 전달 보증
    • 전송된 패킷이 중간에 누락되어도 알 수 있다.
  • 순서 보장
    • 전송된 패킷의 순서가 올바르지 못할 경우 클라이언트에게 다시보내라는 요청을 한다.

3 way handshake

송신측(클라이언트)에서 서버에 최초 SYN 플래그로 상대에게 접속함과 동시에 패킷을 보내고, 수신측에서는 ‘SYN/ACK’ 플래그로 송신측에 접속함과 동시에 패킷을 수신한 사실을 알린다. 마지막으로 송신측이 ‘ACK’ 플레그릴 보내 패킷 교환이 완료되었을을 전달한다.

UDP(Userr Datagram Protocol)

사용자 데이터그램 프로토콜

  • 기능이 거의 없고, 데이터 보증과 순서 보장이 안된다.
  • 전반적으로 IP와 거의 같다.
  • IP와 가장 큰 차이점은 PORT의 유무 이다.

전송받은 메세지에 대해서 간단하게 검증하는 체크섬이 추가 되었다.

TCP는 3 way handshake에 소모하는 시간이 길고 최적화 하기에 어렵다.

UDP는 단순하고 빠르기 때문에 애플리케이션딴에서 추가 작업으로 최적화가 가능하다.

This post is licensed under CC BY 4.0 by the author.