TCP(Transmission Control Protocol)
  - 전송 제어 프로토콜
  - 클라이언트에서 데이터를 전송하면 서버에서 데이터가 잘 도착했는지 응답을 해줘서 데이터 전달이 보증된다.
  - 클라이언트에서 데이터를 서버로 전송할때 데이터의 순서가 보장된다.

TCP/IP 패킷 정보
  - 송신자 IP 주소, 수신자 IP 주소, 송신자 포트 번호, 수신자 포트 번호, 패킷에 포함된 데이터, 그리고 패킷 길이 등의 정보가 포함된다.
  - 기존 IP패킷정보의 한계인 비신뢰성과 비연결성을 TCP 정보를 추가함으로써 한계를 극복했다.
  
TCP/IP 패킷 전달 과정
  1. 어플리케이션 프로그램(클라이언트)이 Socket 라이브러리를 사용해서 운영체제쪽에 "hello world"라는 메세지를 넘긴다.
  2. 운영체제에서는 해당 메세지에 TCP 정보를 씌우고, IP정보를 또 씌운다.
  3. TCP/IP 패킷이 생성된다.
  4. 서버에 데이터가 전달된다.
  
TCP 3 Way Handshake 참고 사항
  - 연결할 상대와 연결되기 전에 가상 연결을 해서 패킷으로 보내서 확인하는 동작이다.
  - 논리적으로 연결이 된거지 실제로 연결이 된것은 아니다.
  
TCP 3 Way Handshake 동작 방식
  1.   클라이언트가 SYN(접속 요청)이라는 메세지를 보내 서버에게 접속요청 수락을 요청한다.
  2-1. 서버에서는 클라이언트로부터 요청 받은 접속요청을 수락하겠다고 ACK(요청 수락)라는 메세지를 클라이언트에게 보낸다.
  2-2. 서버 또한 클라이언트에게 접속을 수락해달라고 SYN(접속 요청)을 보낸다.
  3.   클라이언트 또한 서버로부터 받은 접속요청을 수락하겠다고 ACK(요청 수락)를 보낸다.

'Network' 카테고리의 다른 글

[Network] IP란?  (0) 2023.04.12

IP(Internet Protocol)
  - 송신 호스트와 수신 호스트가 정보를 주고 받는데 사용하는 정보 위주의 규약(protocol)이다.
  - 데이터를 송수신하는 장비 간에 패킷을 전송하고 라우팅하는 데 사용됩니다.
  
IP 주소
  - 인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장치에게 부여되는 고유 주소
  
IP 역할
  - 패킷 분할 및 조립
    - IP는 데이터를 일련의 패킷으로 분할하고, 네트워크를 통해 전송된 후 다시 조합하는 역할을 한다.

IP 패킷 정보
  - 전송하고자 하는 데이터의 한 블록(payload)
  - 주소지 정보(발신지 주소, 목적지 주소)
  - 인터넷 망이 패킷을 목적지까지 전달하는데 필요한 관리 정보(header)
  
IP 프로토콜 한계
  - 비연결성
    - 패킷을 받을 목적지의 서비스가 불능 상태여도 패킷을 전송할 수 있다.
      ex) 서버가 살아있는지 죽어있는지 모르는 상태에서 클라이언트가 패킷을 보낸다.
  - 비신뢰성
    - 패킷이 중간에 소실될 경우 대처할 방법이 없다.
  - 패킷 순서 보장 X
    - 패킷들이 노드를 탈때 패킷마다 노드 타는 경로가 다르게 될 수 있기때문에 도착하는 순서가 바뀔수 있다.
      ex) 출발지에서 "hello world"라는 메세지를 보낼때 도착지에 "world", "hello"와 같이 도착하는 순서가 바뀔수 있음
  - 도착시 프로그램 구분 불가
    - 목적지 주소(IP)만 알고 있고 세부적으로 어디인지는 구체적으로 알지 못할수 있다.
      ex) 같은 IP를 사용하는 서버에서 통신하는 어플리케이션이 여러개일 경우 구분 못 할수있다.
      ex) 목적지를 아파트의 103동까지만 적고 보냄(구체적인 호수 102호와 같은 내용이 안 담겨있음)

'Network' 카테고리의 다른 글

[Network] TCP란?  (0) 2023.04.12

+ Recent posts