12. 네트워크 프로그래밍

2022. 12. 20. 23:21Web/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판) 책을 바탕으로 작성하였습니다.

https://product.kyobobook.co.kr/detail/S000061352064

'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