본문 바로가기

네트워크

3-1. 프로토콜 표준 스펙에서 정의한 소켓, 포트, TCP 연결

네트워크를 표현하는 방법은 2가지 (OSI 7 layer와 TCP/IP Stack)가 있음

TCP/IP Stack에서 TCP, UDP은 transport layer에 해당하는 스펙이고

IP는 internet layer에 해당하는 스펙

OSI 7 layer와 TCP/IP stack은 서로 어느정도 호환이 됨

OSI 7 layer에서 TCP, UDP는 transport layer에 해당하는 스펙이고

IP는 network layer에 해당하는 스펙

TCP/IP stack은 2가지로 분류할 수 있음

application layer은 어플리케이션 레벨에서 구현/관리

네트워크 기능을 사용하는데 목적

아래 layer들은 하드웨어/펌웨어, OS 레벨 (시스템 레벨)에서 구현/관리

네트워크 기능을 지원하는데 목적

Port

프로세스가 데이터를 전송하려면 이를 system으로 전송할 수 있는 통로가 필요함

바로 이것이 port!

여러개의 프로세스에서 한개 또는 여러개의 포트를 사용할 수 있기 때문에 포트를 식별할 수 있어야함

프로세스 한개에 포트 한개일 필요는 없음

서로 다른 2개의 컴퓨터가 인터넷으로 통신 할 때,

internet 프로토콜은 데이터를 보내는 자체에 중점을 둔 프로토콜임

신뢰성은 고려안해서 빠르게 보낼 수 있음
그래서 안정적으로 데이터를 주고 받기 위해 TCP 통신 나옴

 

TCP를 이용해 위 그림의 두 프로세스가 데이터를 주고받으려면

두 프로세스 사이의 connection을 열고 (이떄 3-way handshake가 일어남)

이 connection 위에서 데이터를 주고 받고,

connection을 닫을 때 할당 받은 자원을 반환하며 4-way handshake가 일어남

데이터를 주고 받기 위해 먼저 connection을 열고 닫는 이유는

프로세스 간의 안정적으로 데이터를 주고 받기 위해서 set up이 필요함

몇가지 set up 을 위해서 connection을 열고 닫음

 

※ connection-oriented : connection을 열고, 데이터를 주고 받고, connection을 닫는 과정

 

Socket

그럼 인터넷 상에서 어떻게 port를 유니크하게 식별할까???

바로 소켓을 통해서!

소켓 = IP 주소 + port number

internet address = IP

src socket = 보내는 쪽 소켓 (src IP + src port)

dest socket = 받는 쪽 소켓 (dest IP + dest port)

 

 

UDP (user datagram protocol)

UDP에서는 연결을 맺지 않고 바로 데이터를 주고 받음

 

 

 

'네트워크' 카테고리의 다른 글

2. 프로토콜과 OSI 7 layer  (0) 2023.07.16
TCP/IP와 OSI 7계층  (0) 2023.03.04
CORS (Cross Origin Resource Sharing)  (0) 2023.03.04
CSRF (Cross Site Request Forgery)란?  (0) 2023.03.04
HTTP 상태코드  (0) 2023.03.04