-
Socket, Port, TCP connection 개념CS/네트워크 2024. 5. 22. 16:44
TCP/IP stack은 4가지로 이루어짐
- APPLICATION
- application layer
- 애플리케이션 레벨에서 구현,관리
- 네트워크 기능을 사용하는 데 목적
- application layer
- SYSTEM
- transport layer
- internet layer
- link layer
- 위 3가지는 하드웨어/펌웨어, OS 레벨에서 구현/관리
- 네트워크 기능을 지원하는 데 목적
TCP/IP stack
application layer transport layer internet layer link layer - Socket(소켓)과 Port(포트)는 application layer와 transport layer 사이에 존재
- port : process와 연결된 datapath(통로) 혹은 data channel (숫자로 이루어진거아니냐?)
- port는 여러 개 존재 가능 = port name을 통해 식별
- process 하나에 여러 개 port도 존재 가능.
- host 와 host 간 사이를 연결해주는 protocol = internet protocol
- internet protocol
- unreliabel(=신뢰할 수 없는 특징) data loss, out-of-order 과 같은….
- 따라서 프로세스 간의 통신에서 데이터를 reliable 하게 주고 받고 싶다.
- 그래서 TCP가 생성된 것임.
- TCP 는 internet protocol 위에서 작동하지만, 논리적인 방법을 통해 프로세스 사이에서는 데이터를 안정적으로 주고 받을 수 있게 함.
- 그럼 위 그림처럼 두 process가 어떻게 TCP를 사용해서 통신을 하냐?
- connection-oriented
- connection을 열고, 데이터를 주고 받고, connection을 닫는다.
- 열 때는 3-way 닫을 때는 4-way 방식
- 데이터를 안정적으로 받기 위한 set-up
- 열 때는 3-way 닫을 때는 4-way 방식
- connection을 열고, 데이터를 주고 받고, connection을 닫는다.
- Connection : 프로세스 간의 안정적이고 논리적인 통신 통로
- 여기서 “논리적인” 이란 ↔ 물리적인
- 상대방의 포트를 알아야한다. 즉 인터넷 상에서 어떻게 port를 유니크하게 식별할까?
- port(number) 정의 : 16bit로 이루어진 숫자 (0~65535)
- 위에서 port 를 정의할 때 통로 혹은 채널이라고 했지만, 숫자의 의미도 갖는다.
- 하지만 port number만으로는 유니크하게 식별할 수 없다.
- internet address(현재는 ip address)로 각 host를 유니크하게 식별할 수 있다.
- internet address + portnumber = Socket
- Socket : 인터넷 상에 존재하는 각 port를 유니크하게 식별하기 위한 주소
- 각 socket은 인터넷 상에서 유니크하다.
- Socket : 인터넷 상에 존재하는 각 port를 유니크하게 식별하기 위한 주소
- Connection & Socket
- 각 connection을 유니크하게 식별할 수 있어야 한다.
- 한 쌍의 socket은 connection을 유니크하게 식별한다.
- 각 process 마다 socket이 만들어질 거고 그 socket은 유니크하다.
- 따라서 두 개의 process를 이어주는 socket 또한 유니크하다.
- 하나의 socket은 동시에 여러 connection들에서 사용될 수 있다.
- port(number) 정의 : 16bit로 이루어진 숫자 (0~65535)
- connection-oriented
- UDP는 internet protocol과 거의 차이가 없다.
- 이후 자연스럽게 UDP에도 socket 개념을 쓰기 시작.
- socket을 <protocol, ip address, port number>로 유니하게 식별
- 원래 TCP에서는 ip + port 였는 데
- UDP에서도 사용하기 시작해서 protocol까지 신경 써주게 된 것.
- socket을 <protocol, ip address, port number>로 유니하게 식별
캡처 사진 출처 및 내용은 아래 유튜브 영상에서 가져왔습니다.
https://www.youtube.com/watch?v=X73Jl2nsqiE
+ 설명을 매우 잘해주신다.
'CS > 네트워크' 카테고리의 다른 글
HTTP 웹 기본 지식 4편 (2) 2024.12.02 HTTP 웹 기본 지식 3편 (0) 2024.12.01 HTTP 웹 기본 지식 2편 (2) 2024.12.01 HTTP 웹 기본 지식 1편 (1) 2024.12.01 [네트워크] 클라이언트 - 서버 모델 (2) 2024.10.31 - APPLICATION