TCP/IP

CH_Hwang·2022년 2월 22일
0

CS

목록 보기
8/10

TCP/IP 는 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다.

  • TCP는 IP위에서 동작하는 프로토콜로, 데이터 전달을 보증하고 보낸 순서대로 받게 해 준다.
  • 통신하고자 하는 양쪽 endpoint가 통신할 준비가 되었는지, 데이터가 제대로 전송되었는지, 데이터가 가는도중 변질되지는 않았는지, 수신자가 얼마나 받았고 빠진 부분은 없는지 등을 점검
  • IP Header와 TCP Header를 제외한 TCP가 실을 수 있는 데이터 크기를 세그먼트(Segment) 라고 부른다.

OSI 7 Layer에서 TCP는 4계층(Transport Layer), IP는 3계층(Network Layer)에있다.

  • Transport Layer(4Layer)
    송신자와 수신자의 논리적 연결 담당.
    신뢰성 있는 연결을 유지할 수 있도록 도와줌.
    Endpoint(사용자)간의 연결을 생성하고 데이터를 얼마나 보냈는지, 얼마나 받았는지, 제대로 받았는지 등을 확인함.

  • Network Layer(3Layer)
    IP가 활용되는 부분으로 한 Endpoint가 다른 Endpoint로 가고자 할 경우 경로와 목적지를 찾아줌.(Routing)

  • TCP 3-way handshake
    송신자의 SYN

    통신이 가능한지 확인함. 이때 port가 열려있어야함  

    수신자의 SYN, ACK

    SYN을 받고 SYN/ACK를 통신자에게 날려 통신할 준비가 되었음을 알림

    송신자의 ACK로 이루어짐.

    SYN/ACK을 받고 ACK를 날려 전송 시작을 알림.

TCP로 이루어지는 모든 통신은 반드시 3way handshake를 통해 시작한다.

TCP의 특징

1. 흐름제어

  • 송신자는 자신이 얼마나 보낼 수 있는지, 수신자는 자신이 데이터를 어디까지 받았는지 끊임없이 확인.
  • TCP Header 내의 'Window size'를 사용해 한번에 받고/보낼 수 있는 데이터의 양을 정함하고 자신의 상황에 따라 조절.
  • 지금까지 받은 데이터양을 확인하여 송신자에게 보내는데 이를 'Acknowledgement Number'라고 함.
    ex) 300번째 데이터를 받았으면 acknowledgement number에 1을 추가하여 3001을 보냄.
  • 이 데이터의 순서 번호를 표기한 것이 Sequence Number

2. 혼잡 제어

  • 데이터가 지나가는 네트워크망이 혼잡하다면 제대로 보낼 수 없을것.
  • 송신자는 연결 초기에 데이터 송출량을 나젝 잡고 보내면서 수신자의 수신을 확인하며 데이터 송출량을 조금씩 늘려 가장 적합한 데이터 송출량을 확인함(Slow Start)

0개의 댓글