소켓 프로그래밍

소켓 프로그래밍 (5) TCP와 UDP

ddanss 2018. 10. 7. 14:16
728x90

TCPUDP에 대한 이해

TCP 프로토콜 스택

1. APPLICATION 계층

2. TCP계층

3. IP계층

4. LINK계층

UDP 프로토콜 스택

1. APPLICATION 계층

2. UDP계층

3. IP계층

4. LINK계층

APPLICATION 계층 : 무엇인가를 만드는 과정에서 프로그램의 성격에 따라 클라이언트와 서버간의 데이터 송수신에 대한 약속들. 대부분의 네트워크 프로그래밍은 APPLICATION 프로토콜의 설계 및 구현이 상당 부분을 차지한다.

TCP/UDP 계층 : IP계층에서 알려준 경로정보를 바탕으로 데이터의 실제 송수신을 담당한다. 전송계층 이라고도 한다.

IP 계층 ; 목적지로 데이터를 전송하기위해서 중간에 어떤 경로를 거쳐갈지 해결해주는 계층. 이 계층에서 사용하는 프로토콜이 바로 IP(Internet Protocol) - 비 연결지향적

LINK 계층 : LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역. 물리적인 영역의 표준화.

 

TCP기반 서버, 클라이언트 구현

서버의 함수 호출 순서

1. socket() : 소켓 생성

2. bind() : 소켓 주소할당

3. listen() : 연결요청 대기상태

4. accept() : 연결허용

5. read()/write() : 데이터 송수신

6. close() : 연결종료

클라이언트의 함수 호출 순서

1. socket() : 소켓 생성

2. connect() : 연결요청

3. read() / write() : 데이터 송수신

4. close() : 연결종료

 

Iterative 기반의 서버,에코 클라이언트

1. socket()

2. bind()

3. listen()

----여기부터 반복

4. accept()

5. read()/write()

6. close(client)

--------여기까지 반복

7. close(server)

기본 동작방식

서버는 한 순간에 하나의 클라이언트와 연결되어 에코 서비스를 제공

서버는 총 다섯 개의 클라이언트에게 순차적으로 서비스를 제공하고 종료

클라이언트는 프로그램 사용자로부터 문자열 데이터를 입력 받아서 서버에 전송

서버는 전송 받은 문자열 데이터를 클라이언트에게 재전송, 즉 에코시킴

서버와 클라이언트간의 문자열 에코는 클라이언트가 Q를 입력할 때까지 계속

 

리눅스 기반에서 윈도우 기반으로 바꿀 때 기억할 것

WSAStartup, WSACleanup 함수호출을 통한 소켓 라이브러리의 초기화와 해제

자료형과 변수의 이름을 윈도우 스타일로 변경하기

데이터 송수신을 위해서 read, write 함수 대신 recv, send함수 호출하기

소켓의 종료를 위해서 close

 

반응형