SO_LINGER는 소켓 설정에 대한 옵션이다. 소켓이 colse 하게 될 때, 이 옵션의 영향을 받는다. 이것은 TCP소켓에 대해서만 적용 된다 소켓은 close 한다고 해서 바로 소켓이 닫히지 않는다. 일정 시간 동안 대기 상태가 되는데 그 대기시간이 소켓의 TIME_OUT 상태이다. 이 TIME_OUT 상태의 시간을 SO_LINGER 옵션을 통해서 바로 소켓을 닫게 할 수가 있다. 그렇다면 왜 TIME_OUT 이라는 상태를 두엇는가? TCP는 신뢰성을 보장하는 프로토콜이다. A 와 B가 TCP 로 연결 되어 잇을때 A가 B에거 접속을 끝자 라고 신호를 보내고 나서, 서로 3번에 걸쳐 이 신호가 오고 가서 접속을 끊는다. 자세한 이야기는 인용을 한다. http://kldp.org/node/165 내용..
연구실/네트워크 이해하기 검색 결과
종료를 말하기 전에 우선 시작된 상태를 말해야 할 것같다. 글보단 그림이 더 좋기 때문에, 그림을 바로 띄우면 아래 그림과 같다. 1. 소켓의 우아한 종료가 왜 필요 할까? 이 모습은 소켓의 정상적인 연결 상태를 보여준다. 각각의 소켓은 입·출력 스트림을 가지고(가진다는 표현이 좋겠다) 있어, 입력을 받거나, 출력을 하게 된다. 그리고 접속을 종료하게 될때 우리는 closesoket 함수를 이용하여, 소켓을 닫는다. 그럼 아래와 같은 그림이 보이게 된다. 이렇게 HOSTA는 소켓을 닫음과 동시에 입·출력 스트림도 닫아 버리고, 자신에게 가지고 있던, 버퍼부터 시작한 모든 리소르를 운영체제에게 반환해준다. 물론 일반적인 경우에 문제가 되지는 않지만, "어떤 중요한 정보"를 HostB가 전송도중이였다면, 그..
어디서 부터 정리를 해야 할지 모르겠다~ 중구남방식으로 정리를 하자면 1. 윈속에는 블로킹과 넌블로킹 두가지 소켓 모드가 있다. 2. Windows 플랫폼은 기본적으로 블록킹과 넌블록킹 모드의 소켓을 지원하지만, 지원되는 기술은 Windows NT 이하에선 .. IOCP 를 사용 할수 없다. 3. 블록킹 모드란, 윈속 API 호출이 되는 얼마간의 시간동안 블록 되는것을 뜻한다. 4. 블로킹 모드와 넌블록킹 모두에는 각기 장단점이 있다. 바로 데이터 송수신하는 순서를 관리 안하느냐와 관리하는냐이다. 5. 서버는 넌블로킹 모드로 개발을 해야 하는데, 윈속에선 가장 쓰기 편하고, 가장 성능이 좋은것이 IOCP 이다. 6. Completion Port 에 소켓을 지정하고 나면 소켓 핸들에 대하여 I/O 요청 완..
기본 개요 overlapped http://www.redwiki.net/wiki/wiki/Overlapped%20I/O%20%C0%CC%BE%DF%B1%E2 정리 overlapped http://sanaigon.tistory.com/17 구체적인 이야기 http://keegan.tistory.com/109 부터 내부에 강좌형식으로 쭉 있음 좀 더 편한 글 http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=437
1~4장까지 다 읽었다면 무슨 이야기 하는지 알수 있을 것 이다. 현실에선 언어를 통해서 다른 사람에게 정보를 준다 소켓에선 TCP 나 UDP를 통하여 다른 프로그램에게 데이터를 준다! (물론 TCP 나 UDP 말고 많이 있지만, .. 우선 제낀다.) 즉, TCP 나 UDP는 소켓 끼리 데이터를 주고 받기 위한 통신 규약(Protocol)이다! 자. 다시 그렇다면 TCP와 UDP는 무엇을 해 줄까? TCP(Transmission Control Protocl)는 데이터 전송 과정을 컨트롤 해 주는데, 데이터를 보내고 그 데이터가 잘 갔는지 확인을 해 준다. UDP(User Datagram Protocol)도 데이터 전송 과정을 컨트롤 해 주는데, 데이터를 보내고 그 데이터가 잘 갔는지 확인해 주지 않는다!..
전화번호는 내 전화기로 상대의 전화기에 연결을 하기 위한 번호를 뜻한다. 예) 010-5850-6666, 010-6666-4444 등 소켓 역시 이런 번호로 쓰는데 이런 번호를 IP 라 부른다. 이 IP는 인터넷 프로토콜(Internet Protocol)을 뜻하는데, 전화기처럼 상대의 컴퓨터를 찾기 위한 번호이다. 예) 127.0.0.1, 192.168.0.1, 223.145.9.45 등이 있다. 자. 이제 IP 를 알아 상대의 컴퓨터로 연결을 할수 있다고 생각한다면 오산이다!. 전화번호만 안다고 해서 원하는 사람과 통화 할수 없드시 말이다.(.. 물론 휴대폰은 높은 확율로 원하는 사람이 받지만, 가끔 다른 사람도 받지 않는가?) 즉 전화번호가 사람을 가르키는게 아니듯이, IP 역시 내가 통신하고 싶은 ..
최근댓글