Socket, Port, TCP/UDP Connection

Jisu·2023년 12월 6일
0

Network

목록 보기
3/7

목적

기초 네트워크 공부를 통해 low level 트러블 슈팅을 위한 베이스를 다진다.


사전 지식

  • 컴퓨터 끼리 통신할 때 설정한 규약을 프로토콜이라고 한다.
  • TCP, UDP, IP 스펙은 RFC라는 문서에 정의된대로 관리된다.
  • TCP, UDP - 인터넷 레이어 소속 프로토콜
  • IP - 인터넷 레이어에 소속된 프로토콜

TCP/IP Stack은 크게 2분류로 나뉨


Trasport ~ Link layer
네트워크 기능을 지원하는 것을 목적으로함

Application layer
네트워크 기능을 사용하는데 목적이 있음


TCP (Transmission Control Protocol)

  • 프로세스 간 통신에서 데이터를 안정적으로 주고 받을 수 있는 프로토콜
    기본 internet protocol이 데이터 유실 가능성이 있는 unreliable 프로토콜이기 때문에 등장하게 됨
  • 조금 느리더라도 모든 데이터를 올바른 순서로 송수신 해야할 때 사용

Connection

프로세스 간 안정적이고 논리적인 통신 통로를 의미함. TCP/IP 방식으로 통신하려면 두 컴퓨터는 connection을 먼저 맺어야한다. connection을 열 때 3way handshake, 닫을 때는 4way handshake

이를 connection-oriented 방식이라고 한다.

3 way handshake

TCP/IP프로토콜로 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.

[STEP 1] - 먼저 접속 요청하기

A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.

[STEP 2] - 접속 요청 받고 수락하기

B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.

[STEP 3] - 연결 확정

A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.위와 같은 방식으로 통신하는것이 신뢰성 있는 연결을 맺어 준다는 TCP의 3 Way handshake 방식이다.

중간요약하자면, TCP/IP가 데이터의 신뢰성을 보장한다는데, 이걸 어케 보장하냐?

통신하려는 컴터 사이에 3way hand shake라는 인증과정을 거치기 때문임!!


UDP (User Datagram Protocol)

  • connectionless 프로토콜
    • 신뢰성, 정확성 보다 속도를 우선시함
    • 동영상 스트리밍 과정에 사용 (데이터 몇개 빠져도 보는데 문제없으니까)
    • 인터넷 전화 사용시 (잠깐 끊기거나 왜곡될 때)
  • unreliable protocol (인터넷 프로토콜을 거의 그대로 사용함)


Socket

인터넷 주소와 포트 넘버를 합친 개념! 즉, 인터넷에 존재하는 포트를 고유하게 식별하기 위한 주소

Connection은 고유하게 식별할 수 있어야하는데 한쌍의 소켓이 connection을 고유하게 식별할 수 있음! 요청하는 쪽이 source socket, 요청받는 쪽은 destination socket


Reference

[ 네트워크 쉽게 이해하기 22편 ] TCP 3 Way-Handshake & 4 Way-Handshake

profile
비즈니스에 관심많은 DevOps Engineer 장지수입니다.

0개의 댓글

관련 채용 정보