#. Domain NameSystem IP주소와 도메인 이름 사이에서의 변환을 수행하는 시스템을 가리켜 'DNS(Domain Name System)'라 하며, DNS의 중심에는 DNS서버가 있다. #.도메인이름이란? 인터넷에서 서비스를 제공하는 서버들 역시 IP주소로 구분이 된다. 그러나 기억하기 쉽지 않아 기억하기 좋고 표현하기도 좋은 형태의 도메인 이름이라는 것을 IP주소에 부여해 사용하고 있다. #.DNS서버 네이버의 IP주소인 222.122.195.5를 직접 입력하여 네이버의 메인페이지에 접속하는 것과 www.naver.com 의 입력틍 통해 접속하는 것에 어떤 차이점이 있는 것일까?네이버의 메인 페이지에 접속한다는 점에서 차이가 없지만, 접속의 과정에는 차이가 있다. 도메인 이름은 해당 서버에 ..
#.TCP 기반의 Half-close TCP에서는 연결과정보다 중요한 것이 종료과정이다. 연결과정에서는 큰 변수가 발생하지 않지만 종료 과정에서는 예상치 못한 일이 발생할 수 있기 때문이다. #.일방적인 연결종료 문제 리눅스의 close 함수호출과 윈도우의 closesocket 함수호출은 완전종료를 의미한다. 완전종료라는 것은 데이터를 전송하는 것과 수신하는 것조차 불가능한 상황을 의미한다. 때문에 한쪽에서의 일방적인 close 또는 closesocket 함수호출은 경우에 따라서 효율적이지 못하다.  호스트A가 마지막 데이터를 전송하고 나서 close 함수의 호출을 통해서 연결을 종료하였다. 때문에 이후부터 호스트A는 호스트B가 전송하는 데이터를 수신하지 못한다. 결국엔 호스트B가 전송한, 호스트A가 ..
#.udp 소켓 특징 1.장점 - tcp 보다 간결한 구조로 설계되어서 상황에 따라 좋은 성능을 발휘 한다.(seq와 같이 패킷에 번호부여하는일 없음) - 프로그램 관점에서 구현이 용이하다. - 데이터 손실이 자주 발생하지는 않는다. - 신뢰성 보다 성능이 중시되는 상황에서 좋은 선택이 될 수 있다. 2.단점 - 상대방의 수신여부를 알 수 없다. - 전송도중에 데이터가 분실될 수 있다. - 신뢰할 수 없는 전송방법을 제공한다. - 데이터를 전송할 때마다 반드시 목적지의 주소 정보를 별도로 추가해야한다. (tcp 처럼 연결된 상태가 아니기 때문에.) tcp는 신뢰성 없는 ip를 기반으로 신뢰성 있는 데이터 송수신을 위해서 흐름제어를 하지만, udp는 흐름제어가 존재하지 않는다. 흐름제어 존재 유무가 tcp..
# 앞전 포스팅에서 작성한 에코 클라이언트만 문제가 있다면? - echo_server.c while((str_len=read(clnt_sock,message,BUF_SIZE))!=0) // 클라이언트로부터 수신한 문자열이 있을때에 write(clnt_sock,message,str_len); // 그 문자열을 그대로 에코(문자열 끝 널문자는 제외!) - echo_client.c write(sock,message,strlen(message)); // 서버로 문자열(널문자 포함) 전송 str_len=read(sock,message,BUF_SIZE-1); // 서버에서 에코한 문자열 수신 #.참고 0) TCP 소켓은 "데이터의 경계가 없다. 1) 클라이언트가 서버로 문자열을 write 함수 한번을 호출하여 전달..
#.TCP/IP 프로토콜 스택 #.LINK 계층 이 계층은 물리적인 영역의 표준화에 대한 결과이다. 이는 가장 기본이 되는 영역으로 LAN, WAN 과 같은 네트워크 표준과 관련된 프로토콜을 정의 하는 영역이다. #.IP계층 목적지로 데이터를 전송하기 위해서 중간에 어떤 경로를 거쳐갈 것인가? 이문제를 해결하는 것이 IP 계층이고, 이 계층에서 사용하는 프로토콜이 IP 이다. IP 자체는 비 연결지향적이며 신뢰할 수 없는 프로토콜이다. 즉, 오류발생에 대한 대비가 되어 있지 않은 프로토콜이 IP이다. #.TCP/IP 계층 데이터의 전송을 위한 경로의 검색을 IP 계층에서 해결해주니, 그 경로를 기준으로 데이터를 전송만 하면 된다. TCP와 UDP계층은 이렇듯 IP 계층에서 알려준 경로 정보를 바탕으로 데..
#.ip 와 port ip는 인터넷 프로토콜의 약자로 인터넷 상에서 데이터를 송수신할 목적으로 컴퓨터에게 부여하는 값이다. 반면 port 번호는 컴퓨터에게 부여하는 값이 아닌, 프로그램상에서 생성되는 소켓을 구분하기 위해 소켓에 부여되는 번호를 뜻한다. #.인터넷 주소의 종류 ip 주소는 IPv4 와 IPv6로 나뉜다. 둘의 차이점은 IP 주소 표현에 사용되는 바이트 크기에 있다. IPv4는 4바이트(32비트) 주소체계이고, IPv6는 16바이트(128비트) 주소체계이다. IPv4 기준의 4바이트 IP 주소는 네트워크 주소와 호스트(컴퓨터) 주소로 나뉘며, 주소의 형태에 따라서 A,B,C,D,E 클래스로 분류가 된다. "IP 주소 = 네트워크 주소 + 호스트 주소" 네트워크 주소란 네트워크의 구분을 위한..