본문 바로가기
Computer Science/Network

TCP와 UDP

by snfjddl 2021. 10. 3.

TCP(Transmission Control Protocol)란?

IP 네트워크의 두 컴퓨터 간 연결 지향 통신을 위한 전송 계층 프로토콜, 현재 대부분 TCP를 사용 중임

클라이언트와 서버가 서로 연결된 상태에서만 데이터 전송이 가능하며, 데이터 전송 전 확인 과정을 거치기 때문에

신뢰할 수 있는 프로토콜

 

TCP 특징

  • 연결 지향 - TCP 3 way handshake(가상 연결)
  • 데이터 전달 보증
  • 순서 보장

 

3 way handshake란?

3 way handshake란, TCP 통신에서 신뢰성 있는 연결을 위해 데이터 전송 전 전송망을 구축하는 절차

출처: https://www.geeksforgeeks.org/tcp-3-way-handshake-process/

SYN: P가 Q에게 SYN 메시지를 보낸다. 이 메시지에 포함된 시퀀스 번호는 클라이언트가 임의로 설정한 값 x.

SYN-ACK: Q가 P에게 SYN-ACK 메시지로 응답한다. 이 메시지에 포함된 시퀀스 번호는 서버가 임의로 설정한 값 y,

응답 번호는 x + 1.

ACK: P가 Q에게 ACK 메시지를 보낸다. 이 메시지에 포함된 응답 번호는 y + 1.

 

UDP(User Datagram Protocol)란?

단순 IP와 거의 같음(백지상태).

Port와 Checksum(메시지가 맞는지 확인용) 정도의 기능만 추가된 형태

 

UDP 특징

  • 전송하는 메시지를 패킷(datagram)으로 나누고, 수신측에서 받은 패킷을 재조립하는 통신 형태
  • TCP에 비해 속도가 빠른 편
  • 데이터의 순서 등 보장 X => 따라서 수신측에서 패킷에 대한 추가 작업이 필요

 

Port란?

클라이언트와 서버의 IP만으로는 클라이언트가 서버에 어떤 애플리케이션을 요청했는지 알 수 없음.

예를 들어, 카카오톡을 하면서 멜론으로 음악 감상을 하고 있는 상황에서 카카오톡과 멜론은 각기 다른 서버로 요청을 해야 함. 그 구분에 Port를 활용함

 

0~65535 범위만큼 할당 가능

 

0~1023은 잘 알려진 포트로 이미 사용 중인 경우가 많아서 사용하지 않는 것이 좋음

Ex) FTP - 20,21 / TELNET - 23 / HTTP - 80 / HTTPS - 443

 

DNS(Domain Name System)란?

모든 IP를 외우는 것이 힘들고, 변경될 수 있기 때문에 대외적으로 보여줄 도메인 명으로 대체함.

www.naver.com 도메인으로 접속을 하면 DNS 서버에서 해당 도메인으로 등록된 IP를 반환,

반환받은 IP로 서버 접근.

 

반응형

'Computer Science > Network' 카테고리의 다른 글

HTTP 상태코드 3XX  (0) 2021.12.19
HTTP 메소드  (0) 2021.11.17
HTTP(HyperText Transfer Protocol)  (0) 2021.11.15
URI(Uniform Resource Identifier)  (0) 2021.10.03
IP(Internet Protocol)  (0) 2021.09.26

댓글