2022. 12. 20. 23:21ㆍWeb/Network
1. 소켓의 주소 체계
바이트 순서 : 어떤 값을 메모리에 저장할 때 어떤 방식으로 저장하는가에 따라서 big endian, little endian으로 나누어짐
Big endian 사용시 숫자 비교가 빠르고, 디버깅 용이
Little endian 사용시 수학적 연산(형 변환)이 쉬움
Big endian이 네트워크 바이트 순서임
소켓 주소 : 프로토콜의 종류에 따라 사용하는 주소 체계가 다름
- AF_UNIX : 한 호스트에 존재하는 프로세스 사이의 통신을 지원, 유닉스 주소 체계
- AF_INET : 다른 호스트에 존재하는 프로세스 사이의 통신을 지원, 인터넷 주소 체계
통합 주소 체계 필요성 : 프로토콜마다 주소 체계를 지원하는 문법 구조가 다름, 모든 주소 체계를 수용할 수 있는 공통 주소 체계가 필요함
DNS(Domain Name System)
장접 : 읽기, 쓰기, 기억의 편의성. 고정된 주소 값 제공, 부하 분배(load balancing)
IPv4, IPv6 통합 네임 서비스 API : 프로토콜 버전에 상관없이 네임 주소 -> IP 주소 해석을 해주는 함수
소켓 서비스
SOCK_STREAM : 연결형 서비스를 지원. AF_INET에서는 TCP 프로토콜을 이용
SOCK_DGRM : 비연결형 서비스를 지원. AF_INET에서는 UDP 프로오콜을 사용
SOCK_RAW : IP 프로토콜을 직접 사용
2. 소켓 시스템 콜
socket() 함수 : 소켓을 생성하며, 생성된 소켓의 디스크립터
bind() 함수 : 생성된 소켓에 주소를 부여
listen() 함수 : 소켓에서 대기할 수 있는 연결 요청의 개수를 지정
accept() 함수 : 서버 프로그램에서 클라이언트의 연결 요청을 대기
connect() 함수 : 클라이언트 프로그램에서 서버에게 연결 요청을 수행
send() 함수 : 연결형 서비스에서 데이터를 송신
sendto() : 비연결형 서비스에서 데이터를 송신
recv() 함수 : 연결형 서비스에서 데이터를 수신
recvfrom() : 비연결형 서비스에서 데이터를 수신
3. 클라이언트 서버 프로그래밍
연결형 서비스
비연결형 서비스
* 쉽게 배우는 데이터 통신과 네트워크(3판) 책을 바탕으로 작성하였습니다.
'Web > Network' 카테고리의 다른 글
14. DNS (0) | 2022.12.20 |
---|---|
13. 웹(WWW) (0) | 2022.12.20 |
11. 상위 계층 (0) | 2022.11.26 |
10. 전송 계층 (0) | 2022.11.17 |
9. TCP 프로토콜(2) (0) | 2022.11.17 |