5월13일 복습내용

TCP의 선택
* 신뢰성있는 전송서비스
    - IP는 데이터그램별로 전송에 최선을 다함
    - TCP는IP가 가지고 있지 않는 이런 기능들을 제공함

* TCP의 기능 및 특성
    - 연결설정: 3-way(3단계) 핸드셰이크
    - 일련번호: 데이터크기 및 송수신할 데이터의 위치를 알림
    - 수신확인 및 타임아웃: 오류/분실 데이터의 재전송을 가능하게 함
    - 연결종료:4-way(4단계) 연결종료절차
    - 흐름제어: 통신상대방의 처리능력에 맞춘 유연한 전송성능 보장
    - 혼잡제어: 네트워크에서 발생하는 혼잡에 대응하는 전송 가능

*TCP의 헤더
    - 신뢰성있는 전송을 하기 위해서 여러가지 기술들이 도입되었기 때문에 UDP보다 매우 복잡한 모습을 보익 있다.

*송신자 포트와 수신자 포트

    - 첫 필드는 송신자 포트와 수신자 포트이다.
    - 송신자 포트와 수신자 포트는 UDP의 경우와 같은 개념이다.

*송신측 일련번호

    - 전송의 신뢰성을 확보하기 위해 일련번호 사용
    - 3단계로 이루어지는 TCP연결의 첫 단계는 클라이언트가 서버에게 일련번호를 보내는 것이다.
    - 첫 일련번호를 정하는 방법은 시스템마다 다르다.
    - 첫 일련번호 후 일련번호는 데이터 한 바이트당 1씩 증가한다.
    - 일련번호는 수신확인 및 수신 세그먼트 순서정렬 등에 사용된다.

*수신확인 일련번호

    - 다음 전송에 받기를 기대하는 데이터의 일련번호
    - 3단계로 이루어지는 TCP연결의 첫 단계에서는 서버가 보낼 데이터의 첫 일련번호를 알지 못하므로 0으로 설정한다.

*TCP헤더 길이

    - TCP헤더길이를 나타내는 4비트의 필드
    - 헤더의 크기를 4바이트 단위로 표현
    - 기본값은 5이다.
    - 다음 4비트는 향후 사용을 위해 예약된 것이다.

*세션 플래그

    - 처음 2비트는 예약, 나머지 6비트가 세션 플래그이다.
    - 각 비트마다 고유의 기능을 가지고 있다.

*세션 플래기 - 긴급 포인터

    - 이 비트가 1이면 그 세그먼트는 긴급데이터
    - 그 세그먼트를 우선적으로 처리되야 한다는 의미

*세션 플래그 - 수신확인 유효비트

    - 이 비트가 1이면 수신확인 일련번호가 유효하다는 의미
    - 수신확인 일련번호가 의미없는 값이라면 이 비트는 0이어야 한다.

*세션 플래그 - 푸쉬 요청

    - 이 비트가 1이면 버퍼가 찰 때까지 기다리지 말고 데이터를 즉시 전달하라고 요구하는 것임
    - Telnet 등 짧은 데이터이지만 즉시 보내야 하는 경우에 1로 세팅함

*세션 플래그 - 세션 강제 종료

    - 문제가 생겨서 세션을 계속 유지하지 못 할 경우에 이 비트를 1로 하여 상대에게 전송한다.
    - 상대는 세션을 종료하게 된다.

*세션 플래그 - 일련번호 동기화

    - TCP연결을 시작할 때는 서로 상대방의 첫 일련번호를 알아야 한다. 이를 일련번호의 동기화라고 한다.
    - 따라서 TCP연결에서 클라이언트 그리고 서버가 처음 송신하는 세그먼트에는 각자의 첫 일련번호가 들어있으며, 따라서 이 비트는 1로세팅된다.
    - 이를 수신한 측은 이 일련번호에 1을 더한 값을 다음 세그먼트의 수신확인 일련번호로 하여 전송하다.

*세션 플래그 - 종료 데이터

    - 종료 플래그를 1로 하여 송신하면 상대방에게 세션의 종료절차에 들어가자고 요청하는 것이다.
    - 상대는 종료요청에 대한 수신확인을 보낸다.
    - 상대는 종료 플래그를 1로 하여 송신한다.
    - 이를 수신하면 이에 대한 ACK를 보내고 연결이 종료된다.

*송신측 윈도우 크기

    - 수신 확인을 기다리지 않고 전송할 수 있는 데이터의 크기
    - 즉, 데이터를 수신하여 저장해 둘 수 있는 버퍼크기를 의미
    - 이 필드의 값이 0x1000이라는 것은 이 세그먼트를 보낸 측에 4096바이트의 사용 가능한 버퍼용량이 있다는 의미
    - 이 필드의 값이 0이면 더 이상의 수신이 불가능하다.

*TCP검사합

    - TCP헤더 필드와 전송되는 데이터에 대해 검사를 수행

*옵션필드

    - IP의 경우와 같이 TCP도 헤더길이필드 값이 5보다 크면 옵션이 존재하다.
    - 헤더길이필드의 값이 6일 경우는 4바이트의 옵션필드가 존재함을 알 수 있다.

*최대 세그먼트 크기와 윈도우 크기

    - 전송하는 세그먼트의 크기는 수신측의 윈도우 크기보다 클 수 없다.
    - 또한 각 TCP장치에 설정된 MSS를 초과할 수 없다.
    - MSS = 최대 세그먼트 크기 = Maximum Segment Size = 한 세그먼트에 담아 보낼 수 있는 데이터의 최대 크기
    - 한마디로, 전송하는 세그먼트의 최대크기는 MSS와 윈도우 크기 중 최소값이 된다.

*핸드셰이크 - 그 3단계중 1단계(클라이언트-->서버)

    - ACK 일련번호 값이 0
    - 세션플래그필드의 값이 0x02
    - 대개 헤더길이필드는 0x6, 옵션에서 MSS를 알려 줌
    - MSS를 알려주지 않으면 기본값은 536바이트

*핸드셰이크 - 그 3단계중 2단계(서버-->클라이언트)

    - ACK 번호 값이 1단계 일련번호+1
    - 세션플래그필드의 값이 0x12
    - 대개 헤더길이필드는 0x6, 옵션에서 MSS를 알려 줌
    - MSS를 알려주지 않으면 기본값은 536바이트

*핸드셰이크 - 그 3단계중 3단계(클라이언트-->서버)

    - ACK 번호 값이 2단계 일련번호+1
    - 일련번호 값은 1단계 일련번호+1
    - 핸드셰이크3단계라는 특징적인 값은 없음

*혼잡 TCP

    - 혼잡은 수용능력 이상의 데이터를 수신하였을 때 발생하는 장애상태이다.
    - TCP는 혼잡이 발생했을 때 대응하는 여러 기능을 가지고 있다.

<질문>
버퍼의 역할은 단순히 수신된 데이터를 임시 저장하는 것 인가요? 
버퍼가 왜 꼭 필요한 것인지 잘 모르겠습니다.
그냥 수신측에서 바로 받으면 어떤 문제가 생기는 건가요?
 










by 곰탱이 | 2008/05/13 21:36 | 학습블로그(20042117 조성진) | 트랙백 | 덧글(1)

5월12일 복습 내용

Domain Name System

- 도메인명을 IP주소로 변환하는 시스템
- 예 : telnet ftz.hackkerschool.org를 입력하면, 이에 대응하는 IP주소를 얻기 위해 DNS 클라이언트인 해석기에게 의뢰한다.
- 해석기는 로컬 호스트 파일을 찾아보고 해당 호스트명이 없으면 로컬 DNS에 문의한다.
- 로컬 DNS가 알고 있지 못한 문의에 대해서는 보통 여러 DNS에 문의하거나 혹은 여러 DNS의 도움을 받아 원하는 FQDN에 대한 
  IP주소를 알게 된다.

Domain Name System 트리

- 도메인명은 여러 레벨로 이루어짐
- 레벨들은 . 으로 구분
- 각 레벨 이름은 63개이하의 알파벳/순자/-로 이루어짐
- root: DNS의 최상위 지점

국가 도메인

- 2개의 문자로 되어 있다.
- 미국은 국가코드 us보다 3개의 문자로 된 기관 도메인을 많이 사용
- 기관 도메인은 타국도 사용이 가능하나 .gov와 .mil은 미국만 사용

IP주소 자동 구성

- 초기 워크스테이션들은 하드웨어주소는 알고 있었지만 프로토콜 주소는 기억할 수 없었다.
- 프로토콜 주소는 부팅시 외부의 도움에 의해 알게 된다.
- RARP, BootP, DHCP 이 프로토콜을 지원하는 서버들은 클라이언트가 자신의 물리주소에 대응하는 프로토콜주소를 요청할 때 이
  를 알려준다.

RARP

- UDP를 이용하는 서비스는 아니다. 이더넷프레임에 직접 캡슐화
- 물리주소는 알지만 논리주소를 모를 때 이를 알기위해 사용

BootP

- 정적으로 할당된 IP구성 정보는 서버에 저장되어 있음
- 각 호스트는 서버에 정의되어 있는 BootP에 의해 설정됨
- 하나의 물리주소와 하나의 IP주소 사이의 1:1매핑이 필요함.
- 호스트가 네트워크에서 제거되면 서버의 해당 BootP설정 정보도 제거되어야 함.
- DHCP보다 관리 부하가 크다.

DHCP

- 각 서브넷당 사용가능한 일정 범위의 주소를 이용함.
- 주소 풀이 고갈될 때 까지, 풀로부터 주소를 가져와 할당할 수 있음.
- 필요하면 갱신할 수 있는 조건으로 IP주소를 일정 기간 빌려와 사용하는 개념.
- 한 IP주소를 여러 호스트에 재사용 할 수 있게 해 줌.

<질문>

BootP와 DHCP는 빠른 통신을 위해 UDP를 사용하는데 TCP통신과 통신속도 차이가 얼마나 나는 겁니까?

by 곰탱이 | 2008/05/12 19:29 | 학습블로그(20042117 조성진) | 트랙백 | 덧글(1)

4월12일 예습내용

6. UDP를 이용한 비연결형 전송

<호스트 간 계층의 유형>
* 비연결 프로토콜
 - 비연결형 프로토콜은 회선의 설정 없이 메시지를 전송하는 기능
 - UDP는 비연결형 프로토콜이다.

*연결형 프로토콜
 - 연결형 프로토콜은 메시지 송신자가 수신자와 회선을 설정하고 대화(통신)를 유지하는 과정을 갖는 프로토콜
 - TCP는 연결형 프로토콜이다.

<적은 오버헤드와 신뢰성>

*속도
 - UDP 동일 네트워크상의 호스트들 간에 짧은 메시지를 빈번하게 전송하는 어플리케이션에게 빠른 속도를 제공

*신뢰성
 - 메시지가 분실되거나 에러 상황이 발생되는 경우가 있으므로 어플리케이션은 에러 복구 기능을 제공해야 한다.

<UDP 헤더>

*UDP는 수신자가 송신자에게 응답 메시지를 보낼 수 있도록 송신측 포트를 제공한다.
*수신측 포트는 데이터를 수신하는 호스트가 해당 데이터를 어떤 어플리케이션에게 전달해야 할지를 식별
*메시지 길이 필드는 UDP헤더를 포함한 전체 메시지의 크기를 바이트 또는 옥텟 단위로 나타낸다.
*IP가 자신의 헤더에 대한 에러 검사를 하지 않기 때문에 UDP는 자신에 대한 에러 검사 기능을 포함(선택사항)

<포트의 원리>

*포트 번호 : 적절한 사용자 작업에 전달하기 위해서 클라이언트나 서버의 작업들을 서로 식별할 수 있는 장치

<UDP 포트와 소켓포트의 원리>

*소켓
 - IP 주소와 사용되는 포트 번호의 쌍을 의미
 - 소켓은 UDP세션 양단의 완전한 네트워크 주소로 인식

<어플리케이션>

*예상한 시간에 도착하지 않았다면 재전송해야 하는 짧은 메시지를 다루는 어플리케이션
 - Active Users, Quote of the Day, Whois, BOOTP, SNMP, RIP 등

*긴 메시지를 다루기는 하나 신속한 서비스가 필요한 어플리케이션
 - DNS, TFTP, Sun의 RPC 등

<의문점>

UDP는 오직 빠른 정보 전송을 위한 프로토콜인거죠?
*IP가 자신의 헤더에 대한 에러 검사를 하지 않기 때문에 UDP는 자신에 대한 에러 검사 기능을 포함(선택사항)
여기서 에러 검사 기능을 선택하지 않고 전송을 했는데 에러가 생겼다면 에러를 검출할수 있는 방법은 없는건가요?

by 곰탱이 | 2008/04/12 18:40 | 학습블로그(20042117 조성진) | 트랙백 | 덧글(1)

4월8일 복습내용

<수업중 알게 된 내용>

*네트워킹

-라우터를 많이 거친다고 통신이 느린 것이 아니다.
-먼거리로 통신을 한다고 해서 무조건 느린 것이 아니다. 통신 선로의 기능에 따라 통신이 빠를 수도 있다.

*IP헤더
>IP 헤더 레이아웃
 - IP version : (4) IP version4 를 의미
 - IP header lenght : (5) 기본 IP헤더 길이, 단위가 4바이트, 5X4=20 바이트
 - Prece-dence : 우선순위
 - Type of service : 서비스
 - Total IP length : IP의 총 길이, IP헤더 + IP Payload
 - ID : 데이터그램 ID 번호, 조각난 데이터그램들을 원래 데이터그램으로 합치는데 이용 
 - Frag-mentarea : 단편화, 데이터그램의 크기가 MTU보다 크면 데이터그램을 MTU에 맞게 나눈다.
 - Time to live : 라우터를 지날때 마다 1씩 값이 감소하다가 0가 되면 네트워크에서 소멸
 - Protocol : 프로토콜 필드, IP 상위 프로토콜의 ID번호
 - Check-sum : IP 헤더 검사합, IP 헤더에 대해서만 오류 검사를 하는 필드이다.
 - Source IP address : 송신자 IP주소
 - Target IP address : 목적지 IP주소

*단일화

> 단편화 바이트 구조
 - Don't 비트의 값이 1이면 단편화를 하지말라는 뜻
 - More 비트의 값이 1이면 다음 조각이 있다는 뜻, 0이면 마지막 조각
 - Fragment Offset : 13개의 비트는 8바이트 단위의 옵셋 번호를 가리킨다. 이는 해당 데이터가 원래 데이터의 시작점으로
                             부터의 얼마나 떨어진 데이터인지를 나타낸다. 만약 이 숫자보다 더 큰 옵셋이 필요하다면 추가문자가 
                             더해진다.


<의문점>

오늘 배운 IP헤더의 해석들이 실제 현장에서 어떤 작업을 할때 사용되는지 궁금합니다.

<수업에 관한 내용>

수업을 진행하는데 교수님의 질문에 대답을 안하게 되고, 회피하는게 수업을 할때 저의 안좋은 버릇인데 다음 수업 부터는 
고치겠습니다.
수업을 도중 교수님의 질문에 대답할 수 있도록 노력하겠습니다. ^^ 

by 곰탱이 | 2008/04/09 01:24 | 학습블로그(20042117 조성진) | 트랙백 | 덧글(1)

4월6일 예습내용

*IP 네트워크의 목적
> 논리적 혹은 물리적 연결을 통하여 데이터그램을 배달하려고 노력한다. 하지만 정확한 전송에 대하여 책임지지 않는다.

*IP의 기능
- 논리 주소 지정
- 단편화
- 데이터 길이의 명시
- 서비스의 품질의 명시
- 상위 레벨 프로토콜의 구분
- 경로를 배정
- 진단 및 에러보고 기능

*IP 헤더의 길이 계산
> 두 번째 16진수 문자는 IP 헤더의 길이를 나타낸다. 이 필드값의 단위는 4바이트이다. 즉, 이 필드의 값이 1이라면 그것은 32비트를 의미한다. IP 헤더는 옵션이 없는 경우 기본적으로 5이다.

*IP 데이터그램의 버전
> 처음의 16진수 문자는 IP 버전을 나타낸다. 만약 송신지가 사용하는 버전을 목적지의 소프트웨어가 지원하지 않는다면 양쪽은 통신할 수 없다.

*IP 데이터그램에서의 우선순위
> 네트워크에 혼잡이 발생하여 라우터의 버퍼가 다 차서 소프트웨어가 버퍼를 비우려 할 때, 라우터는 일반 데이터를 지워버린다. 상대적으로 높은 우선순의 데이터만 남겨진다.
> 포화된 네트워크의 사용은 현재의 사용자보다 높은 우선순의의 사용자만이 가능하다 높은 우선순위를 가진 사용자는 전송에 우선권을 가진다. 포화된 네트워크에서는 낮은 레벨의 사용자는 높은 우선순위의 사용자로 인하여 네트워크서비스를 이용할 수 없게 된다.

*IP 데이터그램에서의 서비스의 종류
>지연비트
>처리량 비트
>신뢰성 비트
>비용비트

* ID 번호
>이 번호는 0X0001로 시작하여 새로운 데이터그램이 보내질 때마다 1씩 증가하게 된다. 이것은 논리적인 에러를 없애주고 단편화된 데이터그램을 다시 합치는데 사용되다.
단편화가 발생하면 본래 하나의 큰 데이터그램에서 잘려져 나온 각 부분들은 같은 데이터그램 ID 번호를 가지게 된다. 이것은 모든 조각난 데이터그램의 식별자로서 사용된다. 그러므로 목적지의 IP 시스템은 같은 ID 번호를 가지고 있는 조각들을 모두 모아 원래의 데이터그램으로 만들어 상위의 프로토콜에게 전달하게 된다.
조각난 데이터그램의 첫 번째, 중간, 마지막 데이터그램을 구분 할 수 있게 된다.

*IP 헤더 중 프로토콜 필드의 목적
>어떤 상위 프로토콜이 현재 IP 데이터그램의 페이로드를 이용하고 있는지를 알려주는 필드로 해당 상위 프로토콜의 ID번호를 전달한다. 이는 받는 쪽의 어떤 상위 프로토콜이 현재의 데이터그램을 전달받아야 하는가를 표시한다.

<수업에 대한의견>
*IP 예제 데이터 교환에서 데이터그램의 필드값들을 잘 살펴보고 어떤 데이터그램들인지 분석해 보라. 라고 되어있는데
전혀 모르겠습니다.

by 곰탱이 | 2008/04/06 23:14 | 학습블로그(20042117 조성진) | 트랙백 | 덧글(1)

◀ 이전 페이지          다음 페이지 ▶