티스토리 뷰

면접질문

[네트워크] TCP와 UDP

sayho 2022. 1. 1. 16:40

TCP와 UDP의 차이점

  TCP는 연결지향 프로토콜입니다. TCP는 패킷을 전송하기 전 3 HandShake 과정을 통해 상대방 호스트와 연결 설정을
  하기 때문에 전송 순서를 보장합니다. 그리고 데이터의 수신 여부를 확인하여 신뢰성있는 데이터 전송을 가능하게합니다.
  반면 UDP는 비연결지향 프로토콜입니다. TCP 처럼 연결 설정 과정을 필요로 하지 않고 수신 여부를 확인하지 않기 때문에
  전송속도가 TCP에 비해 빠릅니다. TCP는 신뢰가 필요한 HTTP, 이메일 전송 등에 사용되고 UDP는 속도가 중요한 스트리밍
  서비스에서 사용됩니다.

TCP 헤더

  • 출발지 포트와 목적지 포트 : 포트는 어플리케이션을 식별하는 역할을 한다.
  • Sequence Number : 송신 데이터의 일렬번호로 TCP의 데이터의 위치를 알려주는 필드다. 패킷의 맨 앞에 위치한 데이터가 전체 송신데이터에서 몇 바이트부터 시작하는지 알려준다.
  • Acknowledgement Number : 수신 데이터의 일렬번호로 상대방으로부터 몇바이트까지 수신측에 도착했는지 송신측에 전달해주는 필드다. 송신자가 SYN 100을 보내면 수신자는 100까지 잘 받았고 101부터 받으면 된다라는 사실을 알려주기위해 ACK 필드에 101을 설정하여 보낸다.
  • offset : 데이터 부분이 어디부터 시작하는지 알려주는 필드이다. 즉 헤더의 길이를 알려준다.
  • Reserved : 예약된 필드를 의미한다. 나중에 사용하기 위해 남겨둔 예비 필드이고 전부 0으로 설정되어있다.
  • Flags : 통신제어의 의미를 갖는다. 총 6가지 항목을 가지고 있다. URG 는 긴급 포인터의 필드가 유효하다는 것을 의미하고 해당 필드가 설정되어있을 땐 패키스이 순서에 상관없이 먼저 송신된다. PSH 필드는 버퍼링 된 데이터를 빨리 상위 계층의 응용프로그램에 전달하기 위해 사용된다. RST 필드는 강제로 연결을 초기화하기 위해 사용하는 필드이다. FIN 은 연결종료, SYN 은 연결 시작을 위한 필드이다.
  • Window : 수신 가능한 데이터의 최대값을 알려주는 필드이다. TCP 흐름 제어를 하기 위해 송신자에게 자신의 수신 버퍼의 크기를 지속적으로 발송한다.
  • Checksum : TCP 헤더와 데이터를 포함한 세그먼트 전체에 대해 계산한 값으로 에러를 체크할 때 사용한다.
  • Urgent Pointer : 긴급 데이터의 마지막 바이트의 Sequence Num 을 필드 값으로 설정한다.
  • Option : TCP 연결 관리 기능을 확장하기 위한 필드이다.

UDP 헤더

 
  • 출발지 포트와 목적지 포트 : 어플리케이션을 식별하는 역할을 한다.
  • 전체 길이 : 헤더와 데이터를 포함한 전체 길이를 포함한다.
  • Checksum : TCP 헤더와 데이터를 포함한 세그먼트 전체에 대해 계산한 값으로 에러를 체크할 때 사용한다.

'면접질문' 카테고리의 다른 글

[DB] 면접 스터디 (1)  (0) 2022.02.28
MVC 패턴  (0) 2022.01.30
API와 SDK  (0) 2022.01.30
[네트워크] HTTP  (0) 2022.01.02
[네트워크] TCP 3 way handshake, 4 way handshake  (0) 2022.01.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함