반응형

전체 글 214

대역폭 지연 곱 (Bandwidth-delay product)

이글은 Wikipedia의 Bandwidth-delay product을 요약한 것입니다. 대역폭 지연 곱이란? 쉽게 말하여 선로의 최대 처리량을 말하는 것으로 주어진 시간에 최대로 선로에 있는 데이터량을 말합니다. 좀 더 쉽게 설명하자면 데이터를 보냈는데 상대편에서는 아직 안받은 상태인, 선로에서 이동 중 일 수 데이터의 최대양을 말합니다. 계산단위는 초당 비트 혹은 바이트입니다. 어디에 쓰는 물건인고? TCP와 같이 신뢰성 있는 프로토콜에서 중요한데, 이유는 데이터를 보냈는데 ACK를 받지 않아 메모리에 있을 수 있는 데이터 최대 양과 비교될 수 있기 때문입니다. (에러시 TCP와 같은 경우는 Retransmission등을 처리해야 하기 때문에 메모리 버퍼에 가지고 있어야 합니다.) 덧붙이면, 윈도우 ..

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호출이 값비싼 호출이기 ..

Fiber [beta]

파이버는 아래와 같은 단점을 가지고 있습니다.... 우선 처리가 적절하게 끝나야 합니다. 적절하게 끝나지 못하고 중간에서 Fiber Context Switching이 된 상태에서 끝나게 된 경우, 해당 Fiber Context에서 돌아가던 변수들이 클리어 되지 않습니다. 이것 때문에 애 먹었습니다. Compuware Error Detection으로 체크하는데 갑자기 Memory Leak과 Resource Leak이 나와 체크하였는데 결과적으로 실행하다가 프로그램 종료와 함께 종료된 Fiber Context에서 선언되고 사용되어진 Class들의 d'tor가 호출되지 않았습니다. 쩝... Thread관련 클래스에는 이상없이 클리어 되던 얘들인데... (상세한 조사는 하지 않고 버그만을 수정하였습니다.) --..

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 클 경우 보낸 호스트는 ..

UDP, recvfrom()에서 WSAECONNRESET(10054) 에러 날 때...

recvfrom(...)에서 WSAECONNRESET(10054)에러가 나오면, 열라 황당하죠... 왜냐하면 10054의 의미는 ICMP Port Unreachable이라는 것인데, recvfrom은 내 소켓에서 데이터를 받는 것이니 왠? Unreachable? UDP에서 WSAECONNREST? WSAECONNRESET은 해당코드가 TCP에서의 에러일 떄의 의미를 이야기 하는 것이고 UDP소켓에서의 이유는 아래와 같이 MSDN에서 나와 있습니다. " On a UDP-datagram socket this error indicates a previous send operation resulted in an ICMP Port Unreachable message. " 뭐, 간단히 해석하자면 "먼저번 Send(..

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의 크기가 성능에 어떤 영향을 미치는지 나와 있습니다.

[링크] 주요 소프트 및 패치 다운로드 (지속적 업데이트)

Office 2003 SP3: http://www.microsoft.com/downloads/details.aspx?familyid=E25B7049-3E13-433B-B9D2-5E3C1132F206&displaylang=ko Word, Excel 및 PowerPoint 2007 파일 형식용 Microsoft Office 호환 기능 팩: http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=941B3470-3AE9-4AEE-8F43-C6BB74CD1466 오피스XP, 2003에서 오피스2007 파일을 사용하게 해주는 호환기능팩입니다. Word, Excel 및 PowerPoint 2007 파일 형식용 Microsoft Office 호..

링크 2009.04.29

LUA Script

Lua는 가벼운 인터프린터 언어로 쉽고 가볍게 C/C++에 내장된(Embeded)다는 장점을 가지고 있으며, WOW의 유저UI용 스크립트 언어로도 유명하다. 많은 MMORPG용 서버엔진에서도 사용한다. 물론, 언어로는 메타, 멀티리턴값 같은 조금은 독특하고 머리아픈 기능도 가지고 있다. LUA v 5.1 Reference Manual http://www.lua.org/manual/5.1 루아 공식홈페이지 http://www.lua.org 루아 레드위키 http://www.redwiki.net/wiki/wiki.php/Lua 루아 사용자 모임 http://lua-users.org C# & Lua http://www.gamedev.net/reference/articles/article2275.asp http..

반응형