관리 메뉴

너와 나의 스토리

[CH.2] Socket programming with UDP and TCP 본문

Computer Networks/이론

[CH.2] Socket programming with UDP and TCP

노는게제일좋아! 2019. 10. 4. 12:04
반응형

Socket programming

  • 두 개의 transport services를 위한 두 개의 소켓 타입
    • UDP: Unreliable datagram
    • TCP: reliable, byte stream-oriented

 

 

 

socket programming with UDP

  • UDP: 클라인트와 서버 사이에 연결이 없다
    • 데이터 보내기 전에 handshaking 없다
    • 각 패킷에 IP 목적지 주소랑 port 명시적으로 부착하고 보냄 (따로따로)
    • rcvr은 수신한 패킷에서 발신자 Ip주소와 포트 번호를 추출
  • UPD: 전송된 데이터가 솔실되거나, 뒤죽박죽으로 도착 가능(out of order)
    • 패킷 단위로 보내서 상황에 따라 뒤에 순서인 것이 먼저 도착 가능
    • 이럴때는 그냥 버리고 다시 받음
  • Application 측면:
    • UDP는 클라인트와 서버 사이에서 바이트 그룹의 믿을만하지 않은 전송을 제공

 

 

 

 

Socket programming with TCP

  • client는 반드시 서버와 연결해야한다.

    • 서버 프로세스는 반드시 먼저 작동해야한다.

    • 서버는 클라이언트의 연결을 받기 위해 반드시 소켓을 만들어야한다.
  • 클라이언트는 다음을 통해 서버와 연결한다:
    • 서버 프로세스의 IP 주소와 포트번호를 지정하여 TCP 소켓 생성
    • 클라이언트가 소켓을 만들면 클라이언트 TCP는 서버 TCP와 연결을 설립한다.
    • 클라이언트와 연결되면 서버 TCP는 서버 프로세스가 해당 특정 클라이언트와 통신 할 수 있도록 새로운 소켓을 만든다.
      • 서버가 여러 클라이언트와 대화할 수 있다.
      • 클라이언트를 구별하는데 사용되는 source port numbers
  • application 관점:
    • TCP는 클라이언트 서버 사이에서 믿을만하고, 순서대로 byte-stream 전송("pipe")을 제공한다.

 

반응형
Comments