MakerHyeon

[네트웍개론] Application Layer-Socket programming 본문

Server/Network

[네트웍개론] Application Layer-Socket programming

유쾌한고등어 2023. 4. 17. 17:06

socket을 사용하여 통신하는 client-server app은 어떻게 build할까?

소켓타입은 UDP,TCP 두가지가 있다,

 

UDP는 신뢰할 수 없는 datagram이며,

TCP는 신뢰할 수 있는 byte steam-oriented이다.

UDP는 client와 server간에 연결이 없다.

데이터 전송전 handshaking이 없다.또한 UDP는 전송된 데이터가 손실되거나 잘못 수신될 수 있다.

발신자는 패킷에 IP대상 주소와 포트 번호를 적어보낸다.수신자는 이를 추출한다.

위 우측대로,서버는 계속 실행되고 있으며, client는 통신이 끝나면 close한다.

 

TCP는 UDP와 달리 handshaking을 한다.

서버가 실행되고있는상태에서 server는 socket을 받을 준비를 한다. (소켓 문 생성)

이후 client는 TCP소켓 생성 후 server TCP에 연결을 설정한다. (handshaking)

client가 접속하면, 서버는 새 소켓을 생성한다.서버는 여러 client와 통신이가능하다.

application의 관점으로볼때,TCP는 client와 서버간 신뢰할 수 있는 순서대로 byte-sream 전송을 제공해주는 역할을 한다.

 

Comments