Segment Structure (세그먼트 구조) TCP는 데이터 스트림으로부터 데이터를 받아 들여 이것을 일정 단위로 분할한 뒤 TCP 헤더를 덧붙여 TCP 세그먼트를 생성한다. TCP 세그먼트는 *IP 데이터그램에 캡슐화되어 상대방과 주고 받게 된다. *IP 데이터그램: IP에서 사용하는 **패킷을 말함 = IP PDU **패킷: 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. TCP 패킷이라는 용어가 종종 사용되지만 이는 정확한 표현이 아니다. 세그먼트가 TCP 프로토콜 데이터 유닛(PDU)을 의미하는 정확한 표현이며 데이터그램은 IP PDU를, 프레임은 데이터 링크 계층 PDU를 의미한다. 프로세스는 TCP를 통해 데이터 버퍼를 인수로 넘겨 줌으로써 데이터를 전송한다. TCP는..
TCP(Transmission Control Protocol) TCP는 인터넷 프로토콜(IP) 제품군의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 *옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다. TCP는 전송 계층에 위치한다. 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나로서 국제 인터넷 표준화 기구(IETF)의 RFC 793에 기술되어 있다. *옥텟 : 옥텟(octet)은 컴퓨팅에서 8개의 비트가 한데 모인 것을 말한다. 초기 컴퓨터들은 1 바이트가 꼭 8 비트만을 의미하지 않았으므로, 8 비트를 명확하게 정의하기 위해 ..
인턴일을 하던중에 개발 완료된 WPF 응용프로그램에서 메모리가 계속적으로 증가하는 현상이 생겨 모니터링을 해달라는 부탁을 받았다. 작업관리자 켜놓고 수기로 끄적거리기도 뭐하고 해서 적당한 툴을 찾아봤는데 윈도우에서 제공하는 괜찮은 툴이 있어서 사용했다. 나와 비슷한 상황인 사람에게 도움이 될 수 있으니 방법을 적어본다. 최종 목표는 시간대별로 프로세스의 메모리를 자동으로 체크하는 것이다. 1. Window키 + R, perfmon입력 후 실행 2. 데이터 수집기 집합 - 사용자 정의 (우클릭) - 데이터 수집기 집합 이후 3. 적당한 이름을 입력하고 수동으로 만들기 체크 4. 데이터 로그 만들기 - 성능 카운터 체크 5. 추가 버튼 클릭, 샘플 간격 (메모리를 체크할 시간 간격) 설정 6. 바로 이 화면..
알고리즘문제해결전략 p189 문제 울타리 잘라내기 (문제ID:FENCE, 난이도 중) 알고스팟 링크 풀이 개인적으로 분할정복 문제는 아직 어려워서 고생을 좀 했다. 분할정복 문제가 으레 그렇듯이 나누는 개념 자체는 어렵지 않다. 가운데를 자르고 앞의 절반의 최대값과 뒤의 절반의 최대값을 구해 비교한다. 물론 이 때 분할되는 부분을 처리해주어야 한다. 즉, 잘리는 부분의 울타리 2개를 포함하는 최대값을 구해서 같이 비교해 주어야 한다. 이 때, 이 가운데 부분을 처리하는 부분이 주된 문제인데 절반씩 줄어드므로 logN번 반복되는 연산으로 이 연산을 N시간에 해내야 NlogN으로 풀 수 있다. 내가 처리한 방법은 가운데 2개의 울타리에서 시작해서 좌우로 넓어지면서 최대값을 구하는 것이다. 이때 커지는 방향을..
알고리즘문제해결전략 p189 문제 쿼드 트리 뒤집기 (문제ID:QUADTREE, 난이도 하) 알고스팟 링크 풀이 분할 정복 카테고리에 있지만 문제의 내용 자체가 분할 정복의 원리를 사용한 것일 뿐이고 실제로 풀이는 그냥 stack을 사용해서 하면 된다. (DFS) 풀이의 아이디어는 상하를 뒤집는 방법에 있어서, x마다 하위의 노드들을 전부 앞뒤로 바꿔주면 전체적으로 상하로 뒤집은 결과가 된다는 것. 책의 그림 7.6과 그 밑에 개념적인 설명이 잘 되어있으니 잘 읽어보자 그걸 구현 하는 방법은 stack을 통해서 뒤집을게 모이면 계속 뒤집어 주면 된다. 단지 살짝 주의해야 하는 점은 뒤집은 직후에 그 뒤집었던 x를 루트로 하는 부분트리가 상위 x의 4번째 node였을 때 곧바로 한번 더 뒤집어야 한다는 점..
알고리즘문제해결전략 p168 문제 시계 맞추기 (문제ID:CLOCKSYNC, 난이도 중) 알고스팟 링크 풀이 이 문제는 완전탐색의 탈을 쓴 연립방정식 문제이다. 전체 경우의 수가 4^10이므로 완전탐색을 하라고 책에서는 말하지만 많은 사람들이 손으로 연립방정식을 풀고 그냥 옮겨 적어서 풀었다. 나도 상호 종속적인 몇 개의 버튼을 적당히 거르고 적당히 코드로도 검증을 해서 풀었다. 완전탐색으로 구현하고 싶다면 한 스위치를 4번 누르는것은 0번 누르는 것과 같다는 것만 명심하면 된다. 그래서 나온 경우의 수가 4^10으로 그냥 모든 버튼의 모든 경우의 수를 적당히 구하면 된다. 약 100만개 정도라서 아마 시간이 오래 걸릴 것 같지는 않다. 코드 이 코드는 AC를 받은 코드지만 별로 참고하기는 좋은 코드가 ..