티스토리 뷰

반응형

 

1.  IP(인터넷 프로토콜)

 

IP 인터넷 프로토콜 역할

지정한 IP 주소(IP Address)에 데이터 전달

패킷(Packet)이라는 통신 단위로 데이터 전달 

 

IP 패킷 정보

- 출발지 IP

- 목적지 IP

- Message

 

클라이언트 패킷 전달

출발지 IP 주소에서 패킷이 던져진다. 이 패킷은 노드끼리 전달되면서 목적지 IP를 찾는다. 

 

서버 패킷전달

목적지 IP 주소에서 메세지(ok) 이 적힌 패킷을 던진다. 노드끼리 목적지 IP를 찾아가며 전달된다. 

 

이 때 인터넷망이 복잡하기 때문에 서로 다른 곳으로 패킷이 전달 될 수 있다. 그래서 이는 한계가 있다. 

 

IP 프로토콜의 한계

 

비연결성

PC 가 꺼진 상태에서도 전송된다.

  •  패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

비신뢰성

  • 중간에 패킷이 사라지면?
  • 패킷 전달 순서 문제 발생 
    • 패킷의 용량이 클 때 메세지가 보통 1500byte가 넘으면 끊어서 보내는데 "Hello World!"를 "Hello" / "World"로 끊어서 보낸다 하면 노드들이 내부적으로 타다보면 "World"가 먼저 도착하는 경우가 생길 수 있다. 

프로그램 구분

  • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? (게임하기, 음악듣기..등) 

 

TCP 프로토콜이 이러한 IP프로토콜의 한계점을 보완해준다. 

 

 

1.  TCP 와 UDP

인터넷 프로토콜 스택의 4계층 

애플리케이션 계층 - HTTP, FTP
전송 계층 - TCP, UDP
인터넷 계층 - IP
네트워크 인터페이스 계층 

 

프로토콜 계층 

 

IP 패킷은 IP와 관련된 정보와 함께 TCP 데이터 안에 메세지 데이터가 들어있다. 그리고 네트워크 인터페이스를 통해 LAN카드를 통해 서버로 갈 때 Ethernet frame이 포함되어 전달된다.

 

TCP / IP 패킷 정보

IP 패킷  |  출발지 IP, 목적지 IP, 기타..

TCP 세그먼트  |  출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보...

이 안에 전송 데이터가 들어간다. 

 

 

TCP 특징

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

  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
    • TCP IP에서는 데이터를 전송하면 서버에서 잘 받았다고 클라이언트에 응답해준다. 
  • 순서 보장
    • 패킷1, 패킷2, 패킷3 순서로 전송했을 때 서버에 패킷1, 패킷3, 패킷2 순서로 도착했다면 서버는 패킷2를 다시 보내라고 클라이언트에 요청한다. (서버마다 최적화하는 방법이 다를 수 있지만 순서가 보장된다는 것을 알고 있으면 됨)
  • 신뢰할 수 있는 프로토콜
    • TCP 패킷 정보에는 전송제어, 순서, 검증정보가 들어있다. 
  • 현재는 대부분 TCP 사용 

 

 

TCP 3 way handshake 

1. SYN (SYNchronize) : 접속요청 

클라이언트에서 서버로 SYN이라는 메세지를 보낸다. 

2. ACK (ACKnowledge) : 요청수락

서버에서 ACK라는 메세지를 SYN을 보낸다.

3. ACK

클라이언트에서 ACK라는 메세지를 서버에 보낸다. 

4. 데이터 전송

 

 

이러한 세번 메세지를 주고받는 방식으로 클라이언트와 서버가 서로간 신뢰할 수 있게된다.  이렇게 연결 후 그 다음에  4. 데이터 전송을 하게 된다. 

eg. 만약 서버가 꺼져있어도 2.SYN+ACK 과정이 없어 연결이 안된다는 것을 알 수 있게된다. 

참고. 마지막 3번 ACK 과정과 함께 데이터 전송도 가능하다. 

 

중요한 것은 TCP 연결은 물리적으로 연결된 것이 아니라 논리적으로 연결된 것이라고 생각해야 한다. (가상 연결)

: 클라이언트에서 서버로 가는 도중 거쳐가는 수많은 노드(서버)들이 연결이 됐는지 안됐는지 알 수 없다.

 

 


 

UDP

UDP 특징 사용자 데이터그램 프로토콜(User Datagram Protocol)

  •  하얀 도화지에 비유(기능이 거의 없음)
  •  연결지향 - TCP 3 way handshake X
  •  데이터 전달 보증 X
  •  순서 보장 X
  •  데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  •  정리
    • IP와 거의 같다. +PORT +체크섬 정도만 추가
    • 애플리케이션에서 추가 작업 필요 

TCP는 3way handshake과정이나 , 데이터 넣는 것 등 시간이 오래 걸릴 수 있는 이유로 이를 더 최적화하는 방안으로 UDP프로토콜이 각광받고 있다.  

 

 


 

Reference 

강의 | [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 

반응형