TCP / UDP 란?
전송계층에서 사용하는 프로토콜입니다.
사용하는 목적은, 목적지 장비까지 전송한 패킷을 상위의 특정 응용 프로토콜에 전달하는 것입니다.
TCP(Transmission Control Protocol)
TCP는 수신한 세그먼트에 에러가 발생하면 재전송을 요구하여 에러를 복구합니다.
이러한 기능을 가진 프로토콜을 '신뢰성 있는 프로토콜'이라고 합니다.
따라서 에러 확인 및 복구를 위한 정보를 확인해야 하므로 처리 속도가 느립니다.
UDP(User Datagram Protocol)
UDP는 에러가 발생한 세그먼트는 폐기시킵니다.
이처럼 에러 복구 기능이 없는 프로토콜을 '신뢰성 없는 프로토콜' 이라고 합니다.
따라서 에러 확인 및 복구를 위한 절차가 불필요하므로 처리 속도가 빠릅니다.
TCP header
Source Port (16 bit)
출발지 포트 번호를 표시합니다.
응용 서비스에 따라 포트 번호가 정해져 있는 것도 있지만, 대부분 처음 전송하는 측에서 임의의 번호를 사용합니다.
Destination Port (16 bit)
목적지 포트 번호를 표시합니다.
응용 서비스에 따라 포트 번호가 정해져 있습니다.
Sequence Number (32 bit)
TCP 순서 번호를 표시합니다.
통신을 시작하는 양 단의 장비들과 별개로 임의의 번호부터 시작합니다.
Acknowledgement Number (32 bit)
상대방이 보낸 세그먼트를 잘 받았다는 것을 알려주기 위한 번호입니다.
Offset (4 bit)
TCP 헤더 길이를 4바이트 단위로 표시합니다.
TCP 헤더는 최소 20, 최대 60 byte 입니다.
Reserved (4 bit)
사용하지 않는 필드이며, 모두 0으로 표시합니다.
Flags (8 bit)
제어 비트(Control bits) 라고도 하며, 세그먼트의 종류를 표시하는 필드입니다.
Window size (16 bit)
상대방의 확인 없이 전송할 수 있는 최대 바이트 수를 표시합니다.
Checksum (16 bit)
헤더와 데이터의 에러를 확인하기 위한 필드입니다.
Urgent Pointer (16 bit)
현재의 순서 번호부터 긴급포인트에 표시된 바이트까지가 긴급한 데이터임을 표시합니다.
Option (0~40 byte)
최대 세그먼트 사이즈 지정 등 추가적인 옵션이 있을 경우 표시합니다.
UDP header
Source Port (16 bit)
출발지 포트 번호를 표시합니다.
응용 서비스에 따라 포트 번호가 정해져 있는 것도 있지만, 대부분 처음 전송하는 측에서 임의의 번호를 사용합니다.
Destination Port (16 bit)
목적지 포트 번호를 표시합니다.
응용 서비스에 따라 포트 번호가 정해져 있습니다.
Length (16 bit)
헤더와 데이터를 포함한 전체 길이를 바이트 단위로 표시합니다.
Checksum (16 bit)
헤더와 데이터의 에러를 확인하기 위한 필드입니다.
UDP 헤더는 에러 복구를 위한 필드가 불필요하기 때문에 TCP 헤더에 비해 간단합니다.
'Study in SSAFY > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
[네트워크] Blocking, Non-blocking / Synchronous, Asynchronous (0) | 2023.01.03 |
---|---|
[네트워크] IP 주소와 IPv4 (0) | 2022.12.28 |
[프로그래밍 패러다임] 선언형과 함수형 / 객체지향 / 절차형 (0) | 2022.10.12 |
[디자인 패턴] MVC 패턴 / MVP 패턴 / MVVM 패턴 (0) | 2022.10.12 |
[디자인 패턴] 프록시 패턴 / 이터레이터 패턴 / 노출모듈 패턴 (0) | 2022.10.12 |