소켓이란 물리적으로 연결된 네트워크상에서 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 운영체제에서 제공하는데 이를 소켓이라 한다.TCP 소켓은 거는 소켓과 받는 소켓이 있다.(서버 & 클라이언트)서버(리스닝 소켓)의 구현(1) 소켓 생성 - 소켓 함수를 호출하
low_open.c low_read.c
소켓의 생성int socket(int domain, int type, int protocol);도메인 안에 타입이 나눠지고 그 안에 여러 종류의 프로토콜이 존재한다.프로토콜 체계PF_INET - IPv4 인터넷 프로토콜 체계PF_INET6 - IPv6 인터넷 프로토콜
IPv4 : 4바이트 주소체계IPv6 : 16바이트 주소체계IPv4 기준을 4바이트 IP 주소는 네트워크 주소와 호스트 주소로 나뉘며, 주소의 형태에 따라서 클래스가 분류된다. 네트워크 주소를 통해 라우터를 찾고 나머지 호스트 주소를 이용해 호스트에 접근한다.라우터는
123.112.111.254와 같은 32바이트 IP주소를 정수형으로 변환해주는 함수가 있다. 해당 함수는 정수형으로 변환과 동시에 네트워크 바이트 순서로의 변환도 진행한다.위 함수의 반환형인 in_addr_t는 32비트 정수형으로 정의되어 있다.exampleinet_a
TCP는 Transmission Control Protocol의 약자로 데이터 흐름을 컨트롤 하는 역할을 한다. 따라서 TCP 소켓의 이해를 위해 컨트롤의 방법과 범위에 대해 이해해야 한다.(Application) <-> (TCP, UDP) <-> (IP)
에코 서버와 에코 클라이언트를 구현에코 서버는 클라이언트가 전송하는 데이터를 그대로 재전송하는, 말 그대로 echo(메아리)시키는 서버이다.계속해서 들어오는 클라이언트의 연결 요청을 수락하기 위해서 서버는 accept를 반복적으로 수행할 수 있어야 한다.While{ac
에코 클라이언트는 자신이 전송한 데이터의 크기를 알고있기 때문에, 이를 활용하여 정확히 전송한 바이트 크기만큼 데이터를 수신할 수 있어야 한다.!=를 쓰지않고 <를 쓰는 이유는 예측하지 못한 상황의 발생으로 인한 무한루프의 형성을 막기 위해서이다.echo_clie
TCP/IP10월 22일네트워크 프로그래밍과 소켓의 이해물리적으로 연결된 네트워크상에서 데이터 송수신에 사용할 수 있는 소프트웨어적 장치인 소켓을 운영체제 레벨에서 제공한다.소켓을 생성하는 함수int socket(int domain, int type, int proto
소켓의 타입과 프로토콜의 설정 프로토콜이란 무엇인가 컴퓨터 상호간의 대화에 필요한 통신규약 소켓의 생성 해당 함수는 성공 시 파일 디스크립터, 실패 시 -1을 반환한다 domain은 소켓이 사용할 프로토콜 체계 정보를 전달한다 type은 소켓의 데이터 전송방식에 대
TCP : Transmissin Control Protocol, 데이터 전송과정의 컨트롤인터넷 기반의 효율적인 데이터 전송이라는 커다란 하나의 문제를 하나의 큰 프로토콜로 설계로 한 것이 아니라 작게 나누어 계층화 했고, 이 결과 TCP/IP 프로토콜 스택이 탄생 했다
UDP 소켓은 신뢰할 수 없는 전송방법을 제공하나, TCP 보다 훨씬 간결한 구조로 설계되어 있다. 신뢰성보다는 성능이 중요시되는 상황에서는 UDP가 좋은 선택이 될 수 있다.TCP의 경우 신뢰성 없는 IP를 기반으로 신뢰성 있는 데이터의 송수신을 위해서 플로우 컨트롤
IP주소와 도메인 이름 사이에 변환을 수행하는 시스템을 DNS(Domain Name System)이라 한다.인터넷에서 서비스를 제공하는 서버들에 도메인 이름을 IP 주소 대신 사용한다.도메인 이름은 해당 서버에 부여된 가상의 주소이지 실제주소가 아니다.모든 컴퓨터에는