ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Socket, Port, TCP connection 개념
    CS/네트워크 2024. 5. 22. 16:44

    TCP/IP stack은 4가지로 이루어짐

    • APPLICATION
      • 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
      • Connection : 프로세스 간의 안정적이고 논리적인 통신 통로
        • 여기서 “논리적인” 이란 ↔ 물리적인
      • 상대방의 포트를 알아야한다. 즉 인터넷 상에서 어떻게 port를 유니크하게 식별할까?
        • port(number) 정의 : 16bit로 이루어진 숫자 (0~65535)
          • 위에서 port 를 정의할 때 통로 혹은 채널이라고 했지만, 숫자의 의미도 갖는다.
        • 하지만 port number만으로는 유니크하게 식별할 수 없다.
          • internet address(현재는 ip address)로 각 host를 유니크하게 식별할 수 있다.
        • internet address + portnumber = Socket
          • Socket : 인터넷 상에 존재하는 각 port를 유니크하게 식별하기 위한 주소
            • 각 socket은 인터넷 상에서 유니크하다.
        • Connection & Socket
          • 각 connection을 유니크하게 식별할 수 있어야 한다.
          • 한 쌍의 socket은 connection을 유니크하게 식별한다.
            • 각 process 마다 socket이 만들어질 거고 그 socket은 유니크하다.
            • 따라서 두 개의 process를 이어주는 socket 또한 유니크하다.
          • 하나의 socket은 동시에 여러 connection들에서 사용될 수 있다.

    • UDP는 internet protocol과 거의 차이가 없다.
    • 이후 자연스럽게 UDP에도 socket 개념을 쓰기 시작.
      • socket을 <protocol, ip address, port number>로 유니하게 식별
        • 원래 TCP에서는 ip + port 였는 데
        • UDP에서도 사용하기 시작해서 protocol까지 신경 써주게 된 것.

     

     

    캡처 사진 출처 및 내용은 아래 유튜브 영상에서 가져왔습니다.  

    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
Designed by Tistory.