이전것/네트워크 8

6.2. UDP 기반 서버/클라이언트의 구현

UDP 소켓은 연결이라는 개념이 존재하지 않는다.UDP의 데이터 송수신- TCP는 1대 1의 연결을 필요로 하지만, UDP는 연결의 개념이 존재하지 않는다.- 따라서 서버 소켓과 클라이언트 소켓의 구분이 없다. - 연결의 개념이 존재하지 않으므로, 하나의 소켓으로 둘이상의 영역과 데이터 송수신이 가능하다. #include ssize_t sendto(int sock, void *buff, size_t nbyte, int flags, struct sockaddr *to, socklen_t addrlen);-> 성공시 전송된 바이트 수, 실패 시 -1 반환 - sock : 데이터 전송에 사용될 UDP 소켓의 파일 디스크립터를 인자로 전달.- buff : 전송할 데이터를 저장하고 있는 버퍼의 주소 값 전달.- ..

6.1. UDP 소켓의 특성과 동작원리

UDP 소켓과 TCP 소켓의 데이터 송수신 비교- UDP 소켓은 SEQ, ACK와 같은 메시지 전달을 하지 않는다 (Flow Control 없음).- 그리고 연결의 설정과 해제의 과정도 존재하지 않는다.- 때문에 데이터의 분실 및 손실의 위험이 있다.- 그러나 확인의 과정이 존재하지 않기 때문에 데이터의 전송이 빠르다.- 따라서 안전성보다 성능이 중요시 될 때에는 UDP를 사용한다.

4.1. TCP, UDP

TCP/IP 프로토콜 스택TCP/IP 프로토콜 스택- 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택- 큰 문제를 작게 나눠서 계층화 한 결과- 데이터 송수신의 과정을 네 개의 영역으로 계층화 한 결과- 각 스택 별 영역을 전문화하고 표준화 함- 7 계층으로 세분화가 되며, 4계층으로도 표현함 LINK & IP 계층 LINK 계층의 기능 및 역할- 물리적인 영역으 표준화 결과- LAN, WAN, MAN과 같은 물리적인 네트워크 표준관련 프로토콜이 정의 된 영역- 아래의 그림과 같은 물리적인 연결의 표준이 된다. IP 계층의 기능 및 역할- IP는 Internet protocol 을 의미함- 경로의 설정과 관련이 있는 프로토콜 TCP/UDP 계층TCP/UDP 계층의 기능 및 역할- 실제 데이터의 송수신..

3.2. 주소 정보의 표현

IPv4 기반의 주소표현을 위한 구조체 struct sockaddr_in { sa_family_t sin_family; // 주소체계 uint116_t sin_port; // PORT번호 struct in_addr sin_addr; //32비트 IP주소 char sin_zero[8]; // 사용되지 않음} struct in_addr { in_addr_t s_addr;}; // 32비트 IPv4 인터넷 주소 자료형 이름 자료형에 담길 정보 int8_tuint8_tint16_tuint16_tint32_tuint32_t signed 8-bit intunsigned 8-bit int (unsigned char)signed 16-bit intunsigned 16-bit int (unsigned short)sign..

3.1. 소켓에 할당되는 IP주소와 PORT 번호

인터넷 주소(Internet Address)인터넷 주소란?- 인터넷상에서 컴퓨터를 구분하는 목적으로 사용되는 주소- 4바이트 주소체계인 IPv4와 16바이트 주소체계인 IPv6가 존재한다.- 소켓을 생성할 대 기본적인 프로토콜을 지정해야 한다.- 네트워크 주소와 호스트 주소로 나뉜다. 네트워크 주소를 이용해서 네트워크를 찾고, 호스트 주소를 이용해서 호스트를 구분한다. 클래스 별 네트워크 주소와 호스트 주소의 경계- 클래스 A의 첫 번째 바이트 범위 0이상 127 이하- 클래스 B의 첫 번째 바이트 범위 128이상 191이하- 클래스 C의 첫 번째 바이트 범위 192이상 223이하 - 클래스 A의 첫 번째 비트는 항상 0으로 시작- 클래스 B의 첫 두 비트는 항상 10으로 시작- 클래스 C의 첫 세 비트..

2.1. 소켓의 프로토콜과 그에 따른 데이터 전송 특성

프로토콜의 이해와 소켓의 생성프로토콜이란? - 개념적으로 약속의 의미를 담고 있다. - 컴퓨터 상호 간의 데이터 송수싱네 필요한 통신 규약. - 소켓을 생성할 때 기본적인 프로토콜을 지정해야한다. #include int socket(int domain, int type, int protocol); -> 성공시 파일 디스크립터, 실패 시 -1 반환 - domain 소켓이 사용할 프로토콜 체계(Protocol Family) 정보 전달. - type 소켓의 데이터 전송방식에 대한 정보 전달. - protocol 두 컴퓨터 간 통신에 사용되는 프로토콜 정보 전달. 프로토콜 체계(Protocol Family)프로토콜 체계 - 프로토콜도 그 종류에 따라서 부류가 나뉘는데, 그 부류를 가리켜 프로토콜 체계라 한다. ..

1.1. 네트워크 프로그래밍과 소켓의 이해

네트워크 프로그래밍과 소켓에 대한 이해네트워크 프로그래밍이란? - 소켓이라는 것을 기반으로 프로그래밍을 하기 때문에 소켓 프로그램이라고도 함. - 네트워크로 연결된 둘 이상의 컴퓨터 사이엥서의 데이터 송수신 프로그램의 작성을 의미함. 소켓에 대한 간단한 이해 - 네트워크(인터넷)의 연결 도구 - 운영체제에 의해 제공이 되는 소프트웨어적인 장치 - 소켓은 프로그래머에게 데이터 송수신에 대한 물리적, 소프트웨어적 세세한 내용을 신경 쓰지 않게 한다. 전화 받는 소켓의 생성소켓의 비유와 분류 - TCP 소켓은 전화기에 비유될 수 있다. - 소켓은 socket 함수의 호출을 통해서 생성한다. - 단, 전화를 거는 용도의 소켓과 전화를 수신하는 용도의 소켓 생성 방법에는 차이가 있다. #include int so..