반응형

서버 프로그래밍 24

TCP ECN(Explicit Congestion Notification)

ECN(Explicit Congestion Notification) TCP Header의 Flag 알아보다가 찾게된 명시적 혼잡 통보 기술인 ECN, Window서버쪽에서는 차세대 기술로 구현은 되어있지만 기본적으로 사용되지는 않습니다. 혹, 관련 기술을 찾는 분들을 위하여 편하게 찾으시라고 글 남겨놓습니다. 참고로 ECN의 개념은 TCP Congestion Control 대신에 Network에서 TCP에 혼잡 상황을 알려주어 Congestion Control의 효율을 높이려는 방법으로 혼잡상황을 알려주는 주체가 종단기기들이 아닌 IP네트워크를 구성하는 Router들이 됩니다. TCP의 ECN 기능을 이용한 Differentiated Services의 Assured Service에서의 Fairness 향..

IP(Internet Protocol) Note #1

인터넷 계층은 아래와 같은 역활을 함 - 어드레싱(addressing) - 패키징(packaging) - 라우팅(routing) 인터넷 계층은 아래와 같은 핵심 프로토콜을 가지고 있음 - IP(Internet Protocol): IP 어드레싱과 패킷의 분해, 재조합을 책임지는 프로토콜 - ARP(Address Resolution Protocol): IP주소 MAC주소 변환 - ICMP(Internet Control Message Protocol): IP 패킷의 전달에 따른 오류나 상태를 리포트하고 진단하는 기능을 제공 - IGMP(Internet Group Management Protocol): IP 멀티캐스트(multicast) 그룹의 관리를 책임 IP는 신뢰성 없는 프로토콜인 관계로 아래와 같은 현상..

Overlapped I/O Note #2 서버개발전략

From NETWORK PROGRAMMING FOR MICRSOFT WINDOWS 대용량 데이터 처리(High Throughput) 대량의 데이터를 송수신하는 것을 목적으로 하며 해당 서버의 예로 FTP서버가 있다. 대용량 데이터 처리로 인하여 동시에 연결할 수 있는 연결 수가 제한될 수 있는 문제점이 있으며 아래와 같은 방법이 해결책이 될 수 있다. 제한된 수의 연결을 처리하는 동안 제한된 수의 연결을 처리하지 않고 큐에 넣어 대기시키게하며 제한된 수의 연결을 처리한 후에 대기하고 있던 연결을 꺼내어 처리한다. (뭐, 일종의 처리 연결수를 제한하는 전략인듯.. 책의 내용은 Accept를 위한 queue에서 대기시키라는 건지 별도의 User Level queue를 만들라는 건지 애매 모호함) overla..

Overlapped I/O Note #1

accept 1) backlog를 충분히 잡는다. 2) Win32 - AcceptEx a. What a) accept(..)가 Pending되며 1byte이상이 수신되었을 때 완료된다. b) 성능상의 이유로 AcceptEx에 할당된 커널모드 구조체는 소켓이 연결되었거나 listening socket이 닫히고 난후에 제거할 수 있다. b. How To Use a) 미리 생성된 socket을 accpet(..)에 걸어놓는다. b) 최대치의 개수를 정해놓고 일정수의 AcceptEx를 항상 걸어놓는다. c) 연결만을 걸어놓는 악의적인 접속이나 유효하지 않은 접속을 대비하기 위하여 getsockopt(SO_CONNECT_TIME)을 이용하여 주기적으로 소켓을 검사한다. d) AcceptEx호출이 값비싼 호출이기 ..

TCP Note #2 Gracefully Close(..)

From Chapter 6 내부구조, TCP/IP The Pocket Guide to TCP/IP Sockets C, MSDN closesocket function[winsock], 'Graceful Shutdown, Linger Options, and Socket Closure', NetworkProgramming For Microsoft Windows What? Gracefully Close란 TCP에서 4way-handshake를 정상으로 마친 그러니까 서로 FIN, ACK를 주고 받고 연결이 종료된 상태이다. Why Important? 이 Gracefully Close를 통하여 소켓의 close(..)를 호출한 쪽은 자신이 보내고자 하는 데이터가 정상적으로 상대편에 다 도착했음을 보장받는다. 이는..

TCP & UDP Note #1

From Chapter 6 내부구조, TCP/IP The Pocket Guide to TCP/IP Sockets C, MSDN, NetworkProgramming For Microsoft Windows Socket 소켓구조체 1) 내부의 소켓구조와 링크된 일종의 핸들(Handle) 2) 지역 및 원격 인터넷 주소와 포트, SendQueue, RecvQueue, TCP연결관련상태정보 TCP 1. Defensive Programming 1) Deadlock n bytes를 send(...)할 때, n=source SendQ size + destination RecvQ size + remained size n>source SendQ size + destination RecvQ size 클 경우 보낸 호스트는 ..

TCP/IP에 대한 유용한 글 모음

TCP Segment: http://en.wikipedia.org/wiki/TCP_segment, http://www.linktionary.com/s/segment_tcp.html 자칫 햇갈릴 수도 있는 TCP Segment에 대한 정의가 나와 있는 글들... TCP Sliding Window: http://forgarden.tistory.com/113 TCP 슬라이딩 윈도우에 대한 설명이 쉽게 나와 있는 글... TCP Window Size의 크기에 따른 영향: http://forgarden.tistory.com/114 TCP의 Window Size의 크기가 성능에 어떤 영향을 미치는지 나와 있습니다.

float, double network ordering, float, double 타입의 네트워크 순서(오더)에 관하여...

float 타입이나 double 타입의 전송은 네트워크 프로그래밍 관련하여 공부한 몇 권의 책에서 나오지 않는 내용이라 열시미 찾아 보았답니다. 우선 float 나 double 타입에 대해서 기본적인 지식을 알아보면 아래와 같이 인터넷에서 찾은 글이 참이나 설명을 잘해주고 있습니다. Floats and doubles tend (in modern chip architectures) to be represented using an IEEE-standard format; so the commonly defined types *are* "float" (single-precision) and "double" (double-precision). These have precise meanings in the stan..

반응형