[네트워크]TCP/UDP

chaewon Im·2022년 3월 19일
0

공부 기록✏️

목록 보기
10/15

인터넷 프로토콜 스택의 4계층

  1. 애플리케이션 계층 - HTTP, FTP
    웹 브라우저, 네트워크 게임, 채팅 프로그램 등이 속한다.
    SOCKET 라이브러리 존재.
  2. 전송 계층 - TCP,UDP
  3. 인터넷 계층 - IP
    전송계층과 인터넷 계층을 묶어서 OS
  4. 네트워크 인터페이스 계층 - LAN 카드,LAN 드라이버 등
    => 4 계층을 가진 프로토콜이 인터넷을 통해 서버로 데이터 전달

동작 순서

  1. 프로그램이 'Hello, world!'라는 메세지를 생성한다.
  2. SOCKET 라이브러리를 통해 생성한 메세지를 전달한다.
  3. TCP 정보를 생성하고, 메세지 데이터를 포함한다.
  4. IP 패킷을 생성하고 TCP 데이터를 포함히킨다.

TCP(Transmission Control Protocol)

말 그대로 전송 제어 프로토콜. IP 프로토콜의 한계점을 극복하는 특징들을 가지고 있다.

특징

  • 연결 지향 : TCP 3way handshake, 연결을 먼저 하고 보낸다. ➡️ 비연결성 해결
  • 데이터 전달 보증: 메세지 누락을 방지한다. ➡️ 비신뢰성 해결
  • 데이터 순서 보장 ➡️ 비신뢰성 해결

이러한 특징 덕에 신뢰할 수 있는 프로토콜로 현재 가장 많이 쓰이고 있다.

TCP 3 way handshake

TCP 프로토콜에서 연결을 보장하기 위한 방법으로, 다음과 같은 4단계를 통해 데이터 전송이 이루어진다.

  1. 클라이언트 - SYN ➡️ 서버
    : 서버로 접속 요청을 보낸다.
  2. 클라이언트 ⬅️ SYN+ACK - 서버
    : 서버는 요청을 수락하고, 클라이언트로 접속 요청을 보낸다.
  3. 클라이언트 - ACK ➡️ 서버
    : 클라이언트도 서버의 요청을 수락한다.
  4. 클라이언트 - 데이터 전송 ➡️ 서버
    : 이제 데이터를 서버로 전송한다.

여기서 1~3단계는 연결 과정이다. (3,4단계를 합쳐 요청 수락과 동시에 데이터를 전송할 수 있다.)

  • SYN(synchronize) : 접속 요청
  • ACK(accept) : 요청 수락

다만 물리적 연결을 보장하는 것이 아닌 개념적 연결을 보장하는 것.
➡️ 서로 요청을 수락했지만 중간에 낀 노드들의 상태를 보장할 수 없기 때문.

데이터 전달 보증

데이터 전송 ➡️
⬅️ 데이터 응답

한 쪽에서 데이터를 전송하면 반드시 전달 상태에 대한 응답이 돌아온다.

데이터 순서 보증

[패킷1,패킷2,패킷3] 순서로 전송 ➡️ [패킷1,패킷3,패킷2] 순서로 도착
➡️ 패킷 2부터 다시 보내라는 응답을 보낸다. 순서에 대한 검증이 가능해진다.


UDP(User Datagram Protocol)

사용자 데이터그램 프로토콜. 기능이 거의 없어서 IP와 유사하다고 볼 수 있다.

  • IP의 기능 + PORT + 데이터 검증 정도만 추가되었다.
  • 연결 지향 X, 데이저 전달 보증 X, 순서 보장 X
  • 기능이 없는 대신 단순하고 빠르다.
profile
빙글빙글 FE 개발자

0개의 댓글