Socket
- 두 호스트를 서로 연결하기 위한 각 프로그램의 엔드 포인트로 인터페이스의 역할
- 프로토콜 + IP 주소 + Port 번호로 구성됨
연결 과정
TCP/IP (Transmission Control Protocol / Internet Protocol)
- 3 way handshake 과정을 통해 신뢰성 확보
Client
1. socket() : socket 생성
2. connect() : ip와 port 번호를 통해 통신할 서버로 연결 시도
3. write(), read() : 데이터 송수신
4. close() : 연결 종료
Server
1. socket() : socket 생성
2. bind() : socket에 ip와 port 번호 설정
3. listen() : 클라이언트의 접근 요청에 수신 대기열(Queue)을 생성하여 대기시킴
4. accept() : 클라이언트의 연결을 기다림
5. write(), read() : 데이터 송수신
6. close() : 연결 종료
UDP (User Datagram Protocol)
- 신뢰성을 확보하는 과정이 없어 속도가 빠름
Client
1. socket() : socket 생성
2. sendto(), recvfrom() : 데이터 송수신 (TCP와 달리 3개의 arguments가 더 필요함)
3. close() : 연결 종료
Server
1. socket() : socket 생성
2. bind() : ip와 port 번호 설정
3. sendto(), recvfrom() : 데이터 송수신 (TCP와 달리 3개의 arguments가 더 필요함)
출처
https://soonysoon.tistory.com/65
https://helloworld-88.tistory.com/215
https://www.cs.dartmouth.edu/~campbell/cs60/socketprogramming.html
'IT > Network' 카테고리의 다른 글
IPv4 (0) | 2022.03.01 |
---|---|
Port forwarding이란? (0) | 2022.02.26 |
DNS, Name Server (0) | 2022.02.17 |
DHCP 란? (0) | 2022.02.17 |
OSI 7 계층 (OSI 7 Layer) (0) | 2022.02.11 |
댓글