반응형

본글은 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 정리한 내용입니다.

인터넷에서 컴퓨터 둘은 서로 어떻게 통신할까?

1) 클라이언트와 서버가 바로 옆에 붙어있으면 케이블을 연결해서 메세지를 주고 받으면 된다.

클라이언트와 서버가 바로 옆에 붙어있는 경우

 

2) 클라이언트와 서버가 떨어져있다면?? (EX) 클라리언트 한국, 서버는 미국)

복잡한 인터넷 망

  • 복잡한 인터넷망을 거쳐서 목적지까지 안전하게 내용을 전달해야 한다. 
  • 전달하기 위해서는? 인터넷 프로토콜(Internet Protocol, IP)에 대한 이해가 필요하다. 

 

인터넷 프로토콜(IP)

  • 지정한 IP 주소에 패킷(Packet) 이라는 통신 단위로 데이터를 전달하는 규칙
  • IP 주소는 각 노드(컴퓨터)에 부여된 주소를 가리킴

  • 편지를 보낼 때 주소를 적듯이, 전송 데이터 이외에 출발지 IP와 목적지 IP가 필요

 

  • IP 패킷을 만들어서 인터넷망에 던지면, 프로토콜에 따라서 최종적으로 목적지 IP가 할당된 서버까지 전달됨

 

  • 서버는 메세지가 담긴 패킷을 받은 후 잘 받았다는 내용이 담긴 "OK" 메세지를 담아서 다시 클라이언트에 패킷을 보냄

참고 ) 클라이언트 → 서버 경로와, 서버→클라이언트 경로는 인터넷 망이 복잡하기 때문에 경로가 다를 수 있음

 

인터넷 프로토콜의 한계

1) 비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송함 (ex) 컴퓨터가 꺼진 경우) 

2) 비신뢰성

  • 중간에 패킷이 사라지는 경우 (패킷 손실)
  • 클라이언트에서 패킷이 보낸 순서대로 서버에 오지 않는 경우
    • 메시지가 약 1500byte가 넘으면 메시지를 나눠서 보냄 -> 순서가 필요
    • 나눠서 보내는 메시지가 인터넷 망에서 다른 노드를 타고 서버로 전달되어 서버에 도착하는 순서가 달라질 수 있음 

클라이언트에서 1, 2번 순서로 패킷을 전송했지만 서버에서는 2, 1 순서로 패킷을 받음

 

3) 프로그램 구분 불가능

  • 한 PC에서 여러개의 애플리케이션 (EX) 게임, Youtube)들이 같은 IP를 쓰는 상황에서 전송받은 패킷이 어떤 애플리케이션에 해당하는지 알 수 없음

 

위 3가지 한계점을 극복하기 위해서 TCP 프로토콜을 사용

반응형

+ Recent posts