[1. TCP : echo_client.c / echo_server.c]
<echo_client.c>
<echo_server.c>
<터미널 실행 결과 화면>
서버
클라이언트
tcp 통신의 한계 : 한개의 server는 multiple client와 동시에 통신할 수 없음.
첫번째 클라이언트와 서버가 통신하고 있고, quit 를 하지 않은 상태에서 두번째 클라이언트가 서버에 메세지를 보내면 다시 send back 되지 않는다. (아직 첫번째 클라이언트와 통신하고 있으므로)
> 첫번째 클라이언트가 q 를 눌러서 통신을 종료하면 즉시 두번째 클라이언트에 아까 보냈던 메세지가 send back 되어서 출력된다.
[2. UDP : uecho_client.c / uecho_server.c]
<uecho_server.c>
<uecho_client.c>
<UDP — multiple host 와 커넥션>
- 클라이언트와 서버 역할이 아니라 서로 Host이고 서로 interaction 한다.
- TCP 에서의 문제가 여기서는 발생하지 않는다. ( connectionless)
[3. TCP : op_server.c / op_client.c]
- Really network based application.
- Remote data processing where a client will be making use of the server
<op_client.c>
<op_server.c>
<터미널 결과>
- 클라이언트 자체 내에서 계산한 것이 아니라 클라이언트가 서버에 opeartion을 보낸 후 계산된 결과를 받는 network based application 이다.
- connect 한 다음에 서버쪽에서 ctrl+c로 종료한 다음, 클라이언트에서 opeartion을 수행하면 result 가 0이 나온다. 서버가 응답하지 않았기 때문이다. (trash value)
[4. UDP : bound_host1.c / bound_host2.c]
- Host2에서 Host1으로 msg1, msg2, msg 3를 보낸다.
- Host1에서는 메세지를 받을때마다 5초를 delay 시킨다.
<bound_host1.c>
<bound_host2.c>
- TCP 방식이었다면 delay 해도 host1에서 msg1,msg2,msg3가 한번에 출력되었을 것이다.(data stream)
- 그러나 UDP 방식은 Datagram 형식으로 메세지를 보내므로 5초마다 msg1, msg2, msg3 가 차례로 출력된다.
'Computer Network' 카테고리의 다른 글
세미나 3차 - 서버 가상화에 대하여 (2) | 2024.01.03 |
---|---|
세미나 2차 - MacOS에서 Wireshark 실습하기 / 네트워크 지연 (1) | 2023.11.26 |
세미나 1차 - 실무에서 사용하는 네트워크 기초 (0) | 2023.10.22 |
컴퓨터 네트워크 — TCP half-close (소켓의 우아한 연결종료) (0) | 2021.03.07 |