TIL

포트와 소켓

포트 (Port)

일반적인 포트 번호

소켓 (Socket)

Socket Programming

서버 소켓

  1. 소켓 생성
  2. 바인딩 (ip, port번호 설정)
  3. listen()으로 클라이언트 요청에 대기열을 만들어 몇개의 클라이언트를 대기시킬지 결정
  4. accept()connect()를 요청한 클라이언트와 연결
  5. 데이터 송수신
  6. 소켓 닫기 (close())

클라이언트 소켓

  1. 소켓 생성
  2. connect()로 서버에 설정된 ip, port로 연결 시도
  3. accept()로 클라이언트의 socket descriptor 반환
  4. 데이터 송수신
  5. 소켓 닫기 (close())

프로토콜 표준과는 다른 실제 소켓의 식별

TCP socket 동작 방식

  1. 클라이언트 A에서 서버 소켓으로 연결 요청
  2. A와 서버가 3-way handshake를 통해 연결 설정
    1. 서버에서 또 다른 소켓을 생성하여 A와 연결을 맺음
  3. 클라이언트 B에서도 서버 소켓으로 연결 요청
  4. B와 서버가 3-way handshake를 통해 연결 설정
    1. 서버에서 또 다른 소켓을 생성하여 B와 연결을 맺음

https://www.baeldung.com/cs/port-vs-socket

https://on1ystar.github.io/socket%20programming/2021/03/16/socket-1/

https://www.ibm.com/docs/en/i/7.2?topic=programming-how-sockets-work

https://youtu.be/X73Jl2nsqiE

https://youtu.be/WwseO8l8rZc