ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP / UD
    💻 computer science/🌐 network 2022. 10. 9. 19:28

    TCP (Transmission Control Protocol)


    💡 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

    특징

    1. 연결 지향형 프로토콜 (1:1 연결)
    2. 3-way handshaking 과정을 통해 연결 설정, 4-way handshaking 을 통해 해제
    3. 높은 신뢰성 보장
    4. 흐름 제어 및 혼잡 제어
    5. 전이중, 점대점 방식

    3-way handshaking

    클라이언트와 서버가 통신할 때 3단계의 과정을 거친다.

    1. SYN 단계
      • 클라이언트 → 서버
      • ISN을 담아 SYN을 보낸다.
    2. SYN + ACK 단계
      • 클라이언트의 SYN을 수신하고 서버의 ISN을 보낸다.
      • 승인번호로 클라이언트의 ISN + 1을 보낸다.
    3. ACK 단계
      • 클라이언트는 서버의 ISN + 1한 값을 승인번호로 담아 ACK를 서버에 전송

    위 과정 이후 신뢰성이 구축되고 데이터 전송 시작

    4-way handshaking

    TCP가 연결을 해제할 때는 4-way handshake 과정이 발생한다.

    1. 클라이언트가 서버에 FIN으로 된 세그먼트를 보낸다.
    2. 서버는 ACK라는 승인 세그먼트를 클라이언트에게 보낸다.
    3. 서버는 ACK를 보내고 일정 시간 후에 클라이언트에 FIN이라는 세그먼트를 보낸다.
    4. 클라이언트는 서버에 ACK를 보내고 어느 정도 대기 한후 연결이 닫히고 서버와 클라이언트는 연결이 해제된다.

    ❓ 클라이언트는 서버에게 FIN 세그먼트를 받고 왜 일정기간 대기를 할까

    • 지연 패킷이 발생할 경우를 대비하기 위함
      • 패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제가 발생
    • 두 장치가 연결이 닫혔는지 확인하기 위함
      • 서버가 Closed 상태가 안됐을 수도 있어서 어느 정도 기다린다.

    흐름 제어

    송신하는 곳에서 감당이 안될 정도로 데이터를 빠르게 보내면 수신자에게 문제가 발생한다.

    • 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절해 수신자의 버퍼 오버플로우를 방지한다.

    혼잡 제어

    네트워크 내 패킷 수가 넘치게 증가하지 않도록 방지한다.

    • 패킷 수가 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나지 않도록 한다.

    버퍼 오퍼플로우
    Buffer의 경계를 체크하지 않고, 크기를 넘어서는 데이터 입력을 받아 들였을 때 생기는 문제

    UDP (User Datagram Protocol)


    비 연결 지향형 프로토콜

    • 데이터를 보낼 떄 연결 없이 일방적으로 보내는 방식
    • 빠른 전송이 가능하지만 신뢰성을 보장하지 않는다.

    특징

    1. 비연결형 서비스
      • 연결없이 통신이 가능한 데이터그램 방식 제공
    2. Error detection
      • 에러만 체크해준다.
      • UDP 헤더의 checksum 필드를 통해 최소한의 오류만을 검출
    3. 1:1. 1:N, N:M
      • 연결 가능

    패킷을 순차적으로 보내도 패킷이 순서대로 도착하는 것을 보장 ❌

    손실이 되어도 재전송 요청 ❌

    UDP는 몇 개의 패킷이 도착하지 않더라도 빠른 전송속도가 중요한 곳에서 사용

    참고자료

    https://mangkyu.tistory.com/15?category=762469

    https://www.youtube.com/watch?v=ikDVGYp5dhg&ab_channel=우아한Tech

    '💻 computer science > 🌐 network' 카테고리의 다른 글

    HTTPS  (0) 2022.10.09
    OSI 7 계층 과 TCP/IP 계층  (0) 2022.10.09
    HTTP  (0) 2022.10.09

    댓글

Designed by Tistory.