'Network'에 해당되는 글 204건
- 2009.01.18 Routing (라우팅, 루팅, 중계방식, 경로배정, 경로제어)
- 2009.01.18 라우팅 용어들
- 2009.01.18 TCP (Transmission Control Protocol) Ⅰ
- 2009.01.18 tcp 강좌
- 2009.01.18 Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1)
- 2009.01.18 Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2)
- 2009.01.18 TCP 타임아웃과 재전송
- 2009.01.18 Acknowledgement Mechanism
- 2009.01.18 Retransmission Mechanism
- 2009.01.18 TCP 와 UDP 의 차이점
[ 데이타통신 ]
1. 개요
Routing(라우팅)이란 네트워크 상에서 주소를 이용하여 목적지까지 메세지(패킷 등)를
전달하는 방법을 체계적으로 결정하는 경로선택 과정을 말한다. 한편, 이 과정을 능
동적으로 수행하는 장치를 Router 라고 부른다.
2. 라우팅 방식의 구분
ㅇ 라우터끼리 직접 연결 및 간접 연결에 따라
- 직접라우팅(Direct routing) : 동일 SUBNET 내에서 데이터그램을 전달
- 간접라우팅(Indirect routing) : 1 이상의 라우터를 경유하여 데이터그램을 전달
ㅇ 경로 설정의 수동 및 자동 여부에 따라
- 동적 라우팅
- 정적 라우팅
ㅇ 자치시스템(AS) 내부 및 외부 간에 정보전달 방식에 따라
- 자치시스템 내부에서의 라우팅 : RIP, OSPF, IGRP 등
- 자치시스템 외부(상호)간의 라우팅 : EGP, BGP 등
ㅇ 기타
- 고정 라우팅 (Fixed Routing)
- 홍수 라우팅 (Flood Routing)
- 랜덤 라우팅 (Random Routing)
- 적응 라우팅 (Adaptive Routing)
- 계층적 라우팅 (Hierarchical Routing)
3. 참조용어 ☞ 라우팅 프로토콜
[ 교환망 ]
1. 개요
경로배정(루팅)이란 발신국으로부터 착신국에 이르기까지 호가 중계되는 방식을 말하
며, 배정되어지는 회선을 루트(Route)라고 한다.
2. 루팅방식 ☞ 중계선군(Route)
ㅇ 직접중계방식 (Direct Routing, DR)
ㅇ 랜덤중계방식 (Random Routing, RR)
ㅇ 우회중계방식 (Alternate Routing, AR)
3. 루팅
ㅇ 직접루팅
ㅇ 우회루팅
- 계층적 루팅
- 동적 루팅 : 망의 부하상태에따라 우회루트 선택
- 고정 루팅 : 미리 정해진 우회루트를 선택
'Network > Netowrk_routing' 카테고리의 다른 글
Psiphone : 바레인과 같은 국가의 인터넷 감시를 피하게 해주는 소프트웨어 (0) | 2009.01.18 |
---|---|
라우팅 용어들 (0) | 2009.01.18 |
packet(패킷) : 제어 정보가 들어 있는 헤더와 사용자 데이터가 포함되어 있는 논리적인 정보 그룹이다. 패킷은 네트워크 계층 데이터 단위를 언급할떼 가장 자주 사용되는 용어이다
Header : 데이터를 인캡슐레이션 할떼 데이터 앞에 넣는 제어 정보 .
WAN환경에서 encapsulation 방식
hdlc : Cisco장비와 Cisco장비간의 통신을 할떼 쓰이는 encapsulation 방식
ppp : Cisco장비와 타사 장비 또는 타사 장비와 타사 장비간의 통신을 할떼 쓰이는 encapsulation 방식
frame-relay (프레임릴레이) : 점대점 연결로서 가상의 라인을 구축하는것.. 하나의 포트로 가상으로 여러개 포트를 만들어서 마치 여러개의 포트처럼 쓴다
LAN환경에서 encapsulation 방식
802.1q : 스위치(타사제품), 라우터(타사제품)으로 LAN을 구성했을떼 스위치의 VLan과 통신하기 위한 방법
ISL : (Cisco전용)의 Vlan환경에서 사용하는 encapsulation 방식
ABR : area를 두개이상 겹치는 라우터를 ABR이라 한다
area : 다른 area로 가기 위해서는 무조건 area 0 를 거쳐서 가야 한다.
DR : 자기가 대표로 경로 정보를 가지고 있다가 상대방 라우터가 경로 정보를 궁금해하면 정보를 준다
BDR : DR에 이상이 생길경우를 대비 해서 자기도 경로를 가지고 잇다가 DR이 이상이 생기면 자기가 정보를 가르쳐 준다
DR ORDER : DR , BDR을 제외한 모든 라우터를 DR ORDER라고 한다
static Routing (스태틱라우팅): 수동으로 라우팅 업대이트하는것
default Routing (디펄트 라우팅) : ip router 162.20.30.0 255.255.255.0 162.20.20.2 앞에건 자기가 업데이트할 서브넷 주소 뒤에건 자기가 나갈 넥스트홉
ip route 0.0.0.0 0.0.0.0 162.20.20.2 이건 브로드 캐스트를 날리나??? 뭐지??
administrative distance : 이건 신뢰도를 나타낸다 0에 가까울수록 더 신뢰한다는 뜻이다
dynavic Routing : 이건 자동으로 라우팅 업데이트를 하는걸로 RIP,IGRP, EIGRP, OSPF등이 있다
Distance-Vector 알고리즘 (디스턴스 벡터) : 이건 홉수를 기준으로 경로를 선출하는걸 말한다
Link-state 알고리즘 : 속도를 이용해서 경로를 선출 한다
뺑뺑이방지 하는법들 관련 용어
split Horizon : 원레 패킷을 전송한 라우터에 같은 정보를 보내지 않음
Route Poisoning : 라우터의 디스턴스를 계속 줄어들게 설정함
Poison Reverse : Split Horizon 오버라이드
Hold-Down Timers : 정기적인 갱신 메세지로부터 보호함
Triggered Updates : 자체 라우팅 테이블에서 변화가 발생할떼 자동으로 갱신함
- FD(Feasible Distance) : 출발지 라우터에서 목적지까지 메트릭
- AD(Advertised Distance) : 넥스트-홉 라우터에서 목적지까지 메트릭
- 실제 EIGRP 메트릭은 FD이며, AD는 후속 경로를 선출할때 사용된다.
-BW(bandwidth) : 대역폭
스프릿 호라이즌 : 뺑뺑이를 막기 위해서 한번 받은곳으로 다시 업데이트를 보내지 않는것
priority : OSPF에서 DR선출 할떼 높은 priority 가 가장 높은 라우터를 DR로 선출 한다 (이건 임의로 조정 가능하다.) priority값이 가장 높은 경우 라우터 아이디 값으로 선출 한다 ..
vlan : 스위치에서 가상의 네트워크를 만드는것 하나의 스위치에 여러개의 vlan을 가질수 있고 다른위치에 있어도 자기 네트워크처럼 사용가능하다
subnet mask (서브넷 마스크) : 2진수로 앞에서부터 1씩 나열한 것으로 1부분이 네트워크 부분이고 0부분이 호스트 부분이다
wildcard mask (와일드카드 마스크) : 서브넷의 1부분을 0으로 표기한것 그런대 이것은 0부분이 네트워크 부분이고 1부분이 호스트 부분이긴 하지만.. 꼭 1이나 0이 연속으로 나올 필요는 없다
authentication : 인증 즉 보안 기능중에서 사람이나 프로세스의 신분을 확인해서 접속 여부를 결정하는 요소로 사용하는것을 말합니다.. 영어로 말하자면 who are you? 정도가 된다.
ARP : IP주소를 이용하여 MAC주소를 학습하는 프로토콜
access list : 라우터에 들어오거나 나가는 것을 제어하는것
ANSI : american National Standards Institute (미국 국립 표준기구)의 약자로 주로 통신과 네트워킹 분야에 관여해서 국제표준 미국 표준을 개발하는 단체이다
Application layer (어플리케이션 계층) : OSI 7 계층 7번쩨 계층으로 전자메일 파일전송 터미널 에뮬 같은것을 담당한다
AS : 하나의 네트워크 관리자에 의해 하나의 관리체제로 움직이는 영역 (여러개의 네트워크일수도 있다)
ASBR : Autonomous System Boundary Router 의 약자입니다. AS간의 연결을 윟나 라우터가 바로 ASBR이다
Bit : 컴퓨터에서 사용하는 가장 작은 단위이다.. 8bit가 1byte이다 0과 1로 표현 된다.
BPDU : 네트워크의 라우터 사이에서 일정한 간격으로 (2초정도) 서로의 정보를 주고받는것
broadcast : 같은 broadcast 영역으로 모두다 데이터를 뿌리는것
unicast : 1대1로 대이터를 주고 받는것
multicast : 특정 그룹에 데이터를 뿌리는것
Buffer : 전송중인 데이터를 임시보관하는곳
CIDR : Class를 나눈걸 무시한체 그 앞으로 서브넷을 나누는게 가능하다 .. 예 192.168.1.0 255.255.255.0을 255.255.0.0 이런식으로 나눌수 있다
VLSM : 192.168.1.0 255.255.255.0 이런걸 192.168.1.0 255.255.255.1111 0000 이런식으로 나눌수 있다
collison : 이더넷에서 두 노드가 동시에 전송하게 되면 네트워크 상에서 서로 충돌이 발생하게 되는대 이를 콜리전이라고 한다 . 콜리전이 발생하면 전송 노드는 이 패킷을 다시 전송해야 한다
collison domain : 이더넷에서 서로 동시에[ 전송하면 충돌이 발생하는 영역을 말한다 .. 허브나 리피터로 연결된 모든 노드들은 서로 같은 콜리전 도메인에 있다고 할수 있다
congestion : 네트워크 용량을 초과하는 트래픽이 발생할 경우 네트워크에 컨제션이 발생했다고 한다
frame : 데이터 링크계층(2계층 : Mac address) 에서 전송되어지는 단위를 프레임이라 부른다
firewall : 보통 방화벽이라고 부르며 네트워크의 보안을 위해 설치하는 보안 장비이다 ..
Full mesh : 각네트워크 장비들모두가 직접연결 회선을 가지고 있는 구조를 말한다 .. 무쟈게 비싸고 안정적이다
Header : 데이터를 인캡슐레이션 할떼 데이터 앞에 넣는 제어 정보를 말한다
Hello packet : 라우터가 다른 라우터들이 살아 있는지를 확인하기 위해서 사용하는 패킷이다
Hello protocol : OSPF에서 라우터들간의 통신에 사용하는 프로토콜이다
GUI : Graphical User interface 의 약자로 아이콘이나 그림으로 모든 명령을 수행할수 있는것을 말한다 ..
CLI : command Line Interface 의 약자로 커멘드로 명령을 수행하는것을 말한다
Fardware address : Mac address 를 다르게 부르는 말입니다..
hop count : 두 통신 매체 사이의 거리를 표시하는 방식으로 라우터를 몇개 건너 뛰어서 통신을 하는가에 따라 카운터가 올라간다
HTTP : Hypertext Transfer Protocol의 약자입니다. 웹에서 파일 전송시에 사용하는 프로토콜
ICMP : Internet control Message Protocol의 약자로 , 오류를 보고하는 IP패킷 프로세싱과 관련된 다른 정보를 제공하는 네트워크 계층 인터넷 프로토콜이다 .. 대표적으로 Ping 이 있다
IPv6 : IP version 6 의 약자이다 현제 버전의 (버전 4) 새로운 아이디 체제이다 128비트이다
Link-state routing algorithm (링크 상태 라우팅 알고리즘) :영역안의 모든 라우터의 링크정보를 관리하는 알고리즘으로 OSPF, IS-IS , NLSP등이 여기에 속한다 . 링크의 경로변화를 빨리 인식하고 대형 네트워크에서 적합하지만.. 메모리 소비가 많고 라우터가 CPU를 많이 사용하기 떼문에 대형라우터에서 사용해야 한다
Load Balancing (로드 벨런싱) : 전송에 있어서 여러개의 경로를 통해 데이터를 보냄으로서 전송의 속도를 올리는 방식
Loopback test(루프백 테스트) : 신호를 보냈다가 그 신호가 통신 경로상의 임의의 위치에서 발신 장치를 향해 돌아오게 하는 테스트로 주로 전용 회선 점검시 DSU/CSU에서 사용한다
MAN (metropolitan-area Network (거대 도시 지역 네트워크)의 약자로 한대도시 지역 전체에 구성되어 있는 네트워크이다 .. LAN과 WAN의 중간정도로 보면 된다
MTU : Maximum Transmission Unit(최대 전송 단위)의 약자로 , 특정한 인터페이스가 처리할수 있는 최대 패킷 크기. 바이트 단위로 표시된다 ..
NVRAM : nonvolatile RAM(비휘발성 RAM)의 약자로 , 장치의 전원을 끈 상태에서도 내용을 그대로 보존하는 RAM이다 ..
Octet(옥텟) : 8비트를 의미한다 ..
Qos : Quality of Service(서비스 품질)의 약자로 , 전송품질과 서비스 가용성을 알려주는 전송 시스템 수행 성능 척도
Quary(질의) : 일부 변수나 변수 세트의 값에 관해 물어보는데 사용되는 메시지 이다..
Relay : 둘이상의 네트워크나 네트워크 시스템을 연결하는 장치를 가리키는 OSI용어로 , 데이터 링크 계층 릴레이는 브릿지이고, 네트워크 계층 릴레이는 라우터가 된다 ..
Routing metric : 라우팅 알고리즘이 한 경로가 다른 경로보다 더 낫다고 판단하는 방식이다.. 홉카운트 신뢰도 경로비용등이 있다 .. 간단하게 metric이라고도 한다
멀티플렉싱 : 멀티플렉싱은 여러 다른 상위 계층의 데이터 덩어리들이 네트워크 자원을 공유하는것을 말한다 .. 링크와 대역폭을 서로 다른 데이터들이 조금씩 나눠서 사용하는것이다.
세그먼트 : TCP가 나눈 데이터 단위
desirble 모드란 etherchannel 에서 상대방이 모드가 auto이거나 desirble 모드이면 협상을 한다
stub : show ip route 를 쳤을떼 외부 경로가 IA로 표시되어서 라우팅 테이블이 늘어나는대 .. stub를 선언하면 , 외부경로를 업데이트 하지 않게 되기 떼문에 .. 라우팅 테이블이 줄어 들게 된다 .. 그리고 default 경로가 있기 떼문에 통신하는대는 문제가 없다 ..
미디어 트랜스레이션 : 2계층 주소는 한 네트워크에서만 의미가 있기 떼문에 다른 네트워크로 갈려면 새로운 2계층 주소를 받아야 하는대 이렇게 새로운 2계층 주소로 변환하는 작업을 미디어 트랜스레이션이라고 하고 라우터가 2계층에서 수행한다
디스턴스벡터 라우팅 프로토콜 (distance vector) : 대표적인 라우팅 프로토콜로는 RIP, EIGRP , BGP등이 있다 이 프로토콜들은 인접 라우터에게 정보를 전송할떼 자신의 메트릭값이 얼마인지 알려준다.. 그리고 이 프로토콜들은 자동축약(auto summary) 의 특징이 있다
자동 축약(auto-summary) : 주네트워크 경계에서는 주 네트워크만 광고한는거
IGP : 동일 AS 내부에서 사용되는 라우팅 프로토콜을 말한다 .. 대표적으로 RIP , EIGRP, OSPF등이 있다
EGP : 서로 다른 AS간에 사용되는것을 말한다 .. EGP가 여기에 해당한다
metric : 최적경로를 선택하는 기준을 메트릭이라 한다
롱비스트매치 : 기본적으로 라우터는 서브넷이 조금이라도 더 매치된것을 보고 비트가 높은거만 본다
TTL : 대이터가 너무 오래 남아 있게 되면 네트워크상에 무리가 오게 돼는대 .. TTL값이 0이 되면 버려지게 된다.. 라우터를 한번 넘어 갈떼마다 1씩 줄어들게 된다 ..
Qos : Qos는 어플리케이션 중요도에 따라 서비스의 수준에 차이를 두어 한정된 WAN대역폭을 정책적으로 관리하는 기술
[출처] 라우팅 용어들 (IT보안전문가를 꿈꾸는초보) |작성자 이현석
'Network > Netowrk_routing' 카테고리의 다른 글
Psiphone : 바레인과 같은 국가의 인터넷 감시를 피하게 해주는 소프트웨어 (0) | 2009.01.18 |
---|---|
Routing (라우팅, 루팅, 중계방식, 경로배정, 경로제어) (0) | 2009.01.18 |
TCP (Transmission Control Protocol) 란?
OSI 참조 모델의 제4계층인 전송 계층에 해당되는 프로토콜.
인터넷 프로토콜(IP)과 함께 TCP/IP를 구성한다.
패킷의 도착 순서대로 배열이나 오류 수정 등이 행해지므로
전송 제어 프로토콜(Transmission Control Protocol)보다 상위층에서 보았을 때는
2대의 컴퓨터가 신뢰성이 높은 전용선으로 연결된 것같이 보인다.
1. TCP (Transmission Control Protocol)의 특징
(1) 데이터 단위는 세그먼트 (Segment)이다.
(2) UDP와 같은 인터넷 계층(IP)을 이용한다.
(3) UDP와는 다른 서비스를 응용 계층에 제공한다.
(4) 연결지향의 신뢰성 있는 바이트 스트림 서비스를 제공한다.
(5) 흐름 제어 (Flow Control)와 에러 제어 (Error Control)를 제공한다.
※ 바이트 스트림 (Byte Stream)
한번에 한 바이트씩 연속적으로 전송되는 데이터의 흐름과 같이
끊임없이 연속되는 바이트 열.
2. TCP (Transmission Control Protocol)의 서비스
(1) 연결 지향 서비스 (Connection-Oriented Service)
TCP를 이용하여 응용 계층이 데이터를 전송하기 위해서는연결된 두 시스템간에 반드시 TCP 연결을 만들어야만 한다.
이는 전화 연결과 비슷하다.
한쪽이 전화를 걸고 다른 쪽에서 응답이 온 후에야 전화 통화를 할 수 있는 것처럼,
TCP도 연결이 확인된 이후에야 전송을 시작할 수 있다.
이는 전송 데이터의 신뢰성과 무결성을 보장하기 위한 것이다.
(2) 전이중 서비스 (Full-Duplex Service)
① 데이터를 동시에 양방향으로 전송한다.
② 피기배킹 (Piggybacking)
- 수신한 패킷에 대한 확인 응답을 송신하는 패킷에 포함하여 전송한다.
- 전송 데이터 없이 확인 응답 전송도 가능하다.
(3) 스트림 데이터 서비스 (Stream Data Service)
① TCP는 상위 계층으로부터 데이터 스트림을 수신한 후,
세그먼트(Segment)라고 하는 적절한 패킷 단위로 스트림을 나눈다.
② 세그먼트들은 네트워크를 통해 전송되어 목적지 TCP에 의해 재조립된다.
③ 스트림 전달을 위해서 송신과 수신 TCP는 버퍼를 이용한다.
※ 버퍼 (Buffer)
입출력 데이터 등의 정보를 전송할 때 일시적인 데이터 저장 장소로 사용되는 기억 장소.
(4) 신뢰성 서비스 (Reliability Service)
TCP는 UDP와는 달리 신뢰성을 보장한다.
TCP 연결로를 통하여 데이터를 전송하고 이에 대한 응답(ACK)를 받음으로서
그 데이터가 올바르게 전송되었음을 보장한다.
만일 응답이 오지 않으면 그 데이터가 손상되었다고 판단하고 TCP는 재전송을 하게 된다.
① 정보 단위인 세그먼트를 IP로 전송한다.
② TCP는 세그먼트를 보낼 때 타이머를 설정한다.
- 수신측으로부터 확인 응답 메시지를 기다린다.
- 확인 응답이 오지 않을 경우 세그먼트를 재전송한다.
③ TCP가 연결의 상대편으로부터 데이터를 받으면 확인 응답을 보낸다.
일반적으로 수 초 정도 지연된 후에 보내진다.
④ TCP는 헤더와 데이터에 검사합을 이용한다.
- 데이터가 전송 중에 변화되었는지 검출하는 것이 목적이다.
- 오류가 난 세그먼트는 버리고 확인 응답을 보내지 않는다.
⑤ TCP 세그먼트는 IP 데이터그램으로 전송한다.
⑥ TCP는 중복된 데이터를 제거한다.
⑦ TCP는 흐름 제어를 제공한다.
3. TCP (Transmission Control Protocol)의 헤더 구조
(1) 소스 포트 주소 (Source Port Address)
송신측(발신지)의 포트번호. 전체 길이는 16bit 길이를 갖는다.
(2) 목적지 포트 주소 (Destination Port Address)
수신측(목적지)의 포트 번호. 전체 길이는 16bit 길이를 갖는다.
(3) 순서 번호 (Sequence Number)
① 32bit의 필드.
② 자신이 전송하는 데이터의 각 Byte마다 고유한 번호를 부여한다.
③ 데이터 스트림의 순서, 중복된 세그먼트에 대한 구분, 데이터 수신 확인 등의
기능도 한다.
(4) 확인 응답 번호 (Acknowledgement Number)
① 32bit의 필드.
② 수신측에서 송신측으로부터 받은 세그먼트에 대한 응답.
(5) 헤더 길이 (Header Length)
① 4bit의 필드.
② 32bit 워드 단위로서 헤더의 길이를 지정한다.
③ 옵션 필드가 가변 길이이기 때문에 필요하다.
④ 20Byte ~ 60Byte
(6) 예약 (Reserved)
차후의 사용을 위해 예약된 6bit 필드.
(7) 제어 (Control)
제어 Code 필드는 TCP 패킷의 종류를 나타내기 위한 필드로서
총 6개의 필드가 있고, 각각은 1bit 씩 차지한다.
① URG (Urgent)
현재 Urgent Pointer에 명시된 항목이 기존의 바이트 스트림 즉, 데이터 교환 혹은
어플리케이션 프로세스의 제어를 위해 전송할 메시지나 데이터임을 나타낸다.
② ACK (Acknowledgement)
이 항목이 1로 설정되면
확인 응답 번호 항목에 ACK 번호 값이 입력되어 있다는 것을 의미한다.
③ PSH (Push)
이 항목이 1로 설정되면
TCP에게 수신된 데이터를 즉시 상위 계층의 프로세스에 넘겨주라는 것을 의미한다.
④ RST (Reset)
TCP의 연결을 특정 에러 혹은 사용자의 명령에 의해 재설정하기 위해 사용한다.
⑤ SYN (Synchronize)
이 항목이 1로 설정되면 TCP 연결을 위한 요청을 한다.
⑥ FIN (Finish)
연결의 종료에 대한 요청을 나타낸다.
(8) 윈도우 크기 (Window Size)
① 16bit의 필드.
② 수신자의 입장에서 현재 자신의 가용 버퍼 (Available Buffer)의 크기를 알려준다.
③ 윈도우 크기를 이용하여 양종단 간의 흐름 제어를 수행한다.
(9) 검사합 (Checksum)
① 대부분의 TCP/IP 프로토콜에 의해 사용되는 오류를 검출한다.
② 데이터의 전달 중에 발생할 수 있는 오류에 대한 보호를 수행한다.
③ 데이터, 헤더 그리고 의사 헤더에 대하여 검사합을 수행한다.
④ 프로토콜의 값 : 6
(10) 긴급 포인터 (Urgent Pointer)
① URG 플래그가 설정되었을 때만 유효하다.
② 송신측이 상대편에게 긴급한 데이터를 보내는 방법
③ 긴급 데이터를 포함하고 있는 경우 URG 플래그를 1로 설정한다.
(11) 옵션 (Option)
① 목적지에게 부가 정보를 전달하거나 다른 옵션의 정렬을 맞추기 위해 사용한다.
② 최대 40Byte까지 가능.
③ 옵션의 두 종류에는 단일 바이트 (Single Byte)와 다중 바이트 (Multiple Byte)가 있다.
● 옵션의 끝 (End of Option)
- 옵션 필드의 끝에 패딩을 위하여 사용되는 단일 바이트 옵션
- 마지막 옵션으로만 사용 가능하며, 한개의 옵션만 사용한다.
※ 패딩 (Padding)
고정된 길이의 블록 또는 레코드의 사용하지 않는 기억 장소를
특정한 정보 - 공백(blank) 등의 문자로 채우는 기법이다.
● 무동작 (No Operation)
- 옵션 사이를 채우는 기능.
- 옵션 정렬에 사용한다.
● 최대 세그먼트 크기 (MSS : Maximum Segment Size)
- TCP 세그먼트의 목적지에서 수신할 수 있는 데이터 세그먼트의 최대 크기
- 연결을 설정하는 세그먼트에서만 사용한다.
- Default = 536
● 윈도우 확장 인자 (Window Scale Factor)
- 슬라이딩 윈도우 (Sliding Window)의 크기를 정의한다.
● 타임 스탬프 (Timestamp)
- 왕복시간 (RTT : Round Trip Time)을 결정하기 위해 사용하는 필드.
- 발신지와 목적지가 타임스탬프 필드에 저장한 시간 값을 비교하여
왕복시간(RTT)을 계산한다.
- 10Byte 길이 옵션
※ 왕복시간 (RTT)
발신지를 출발한 패킷이 목적지에 도착했다가 다시 발신지로 돌아오기까지의 시간.
'Network > Netowrk_transport' 카테고리의 다른 글
tcp 강좌 (0) | 2009.01.18 |
---|---|
Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1) (0) | 2009.01.18 |
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2) (0) | 2009.01.18 |
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
Acknowledgement Mechanism (0) | 2009.01.18 |
'Network > Netowrk_transport' 카테고리의 다른 글
TCP (Transmission Control Protocol) Ⅰ (0) | 2009.01.18 |
---|---|
Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1) (0) | 2009.01.18 |
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2) (0) | 2009.01.18 |
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
Acknowledgement Mechanism (0) | 2009.01.18 |
Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1)
| Network/Netowrk_transport 2009. 1. 18. 18:16오늘은 Windows Server 2008과 Windows Vista의 TCP 네트워크에 대해서 논해볼까 합니다.
다소 어려운 주제일 수 있으나, 꼭 아셔야할 필요성이 있다고 생각합니다.
네트워크를 사용하는 응용 프로그램 성능의 주요 팩터는 바로 네트워크 처리량입니다. 응용 프로그램에 대한 네트워크 처리량에 따라 응용 프로그램의 응답성 및 사용자가 느끼는 성능에 차이가 발생할 수 있습니다.
이 러한 네트워크 처리량에 영향을 줄수 있는 팩터는 여러가지가 있습니다. 그중 첫번째는 바로 네트워크의 물리적인 특징입니다. 네트워크 자체를 파이프라고 생각하시면, 대역폭(Bandwidth)는 바로 파이프의 지름이라고 볼 수 있습니다. 지연(Latency), RTT(Rount Trip Time)은 파이프의 길이라고 해야할까요? 만약 여러분께서 1GB의 데이터를 전송하고자 한다면, 더 굵고, 짧은 파이프가 길고 얇은 파이프보다 빠르게 데이터를 전송할 수 있습니다. 높은 대역폭과 낮은 지연은 높은 처리량에 대한 필수 팩터라고 볼 수 있습니다.
네 트워크의 사용량은 두번째 팩터가 되게 됩니다. 사용자/응용 프로그램이 주어진 네트워크 링크를 공유해서 사용하기 때문에, 응용 프로그램의 처리량 증가는 자연스럽게 링크의 감소로 이어지게 됩니다. 링크 대역폭은 TCP 프로토콜을 사용하는 응용 프로그램간에 공평하게 나누어서 사용하기 때문에, TCP 연결의 대역폭에 대해 응용 프로그램 연결을 제한하지 않는다면, 해당 링크는 혼잡(Congestion)이 발생하게 됩니다. 당연한 이야기죠? 혼잡이 발생하면 패킷의 누락과 전체적인 처리량의 감소가 생기는 것도 너무 당연하죠. 이러한 것을 막기 위해, TCP 프로토콜은 혼잡을 방지하고, 감지할수 있는 메커니즘을 가지고 있고 이를 통해 대역폭을 공평히 나누어 쓰게 됩니다.
세 번째 팩터는 네트워크 프로토콜로부터 발생하게 됩니다. TCP는 두가지 메커니즘을 통해 연결에 대한 처리량을 제한합니다. 한가지가 혼잡 제어(Congestion Control), 또하나가 흐름 제어, 흔히 이야기하는 Receiving Windows입니다. 혼잡 제어는 TCP 프로토콜에 네트워크내 혼잡을 발생시키지 않고, 공평하게 네트워크를 나눠 사용할 수 있도록 하며, Receiving Windows는 수신자가 처리할 수 있는 데이터량보다 많이 송신자가 전송하는 것을 막아줍니다. 이러한 제어는 TCP 프로토콜에 대한 이야기이며, UDP는 이러한 처리를 하지 않습니다.
조 금 난해한 이야기인가요? Windows Vista, Windows Server 2008의 Network Auto Tuning을 아시려면 배경지식으로 꼭 필요한 이야기입니다. 자 다음 편에 이제 실제 이야기를 쓰도록 하겠습니다. :)
'Network > Netowrk_transport' 카테고리의 다른 글
TCP (Transmission Control Protocol) Ⅰ (0) | 2009.01.18 |
---|---|
tcp 강좌 (0) | 2009.01.18 |
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2) (0) | 2009.01.18 |
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
Acknowledgement Mechanism (0) | 2009.01.18 |
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2)
| Network/Netowrk_transport 2009. 1. 18. 18:16어제 21편에서는 Network, TCP에 대한 기본적인 사항을 알아보았습니다. 꼭 Windows뿐만 아니라, 모든 네트워크 관련 사항을 진행할 때, 반드시 아셔야할 내용이었습니다. 자 그럼 어제에 이어서...
TCP Receive Window 제한은 TCP 연결시 사용할 수 있는 처리량에 제한을 가하게 됩니다. 이론적으로 Receive Window를 R이라고 하고, 양 종단간의 RTT(Rount Trip Time)을 T라고 했을 때...
Throughput = R/T
가 되게 됩니다. 저도 처음에 잘 이해가 안가는 공식이었지만(Bandwidth-Latency 기술을 공부할 때 봤었던 공식이었습니다.), 조금 이해를 돕기 위해.. 다시 공식을 바꿔 써보면..
Throughput X T = R
최대 처리량은 초당 전송량이기 때문에, 실제 전송되기 까지의 지연(시간이죠)을 곱해주면 상대방이 받을 수 있는 한번에 수신할 수 있는 최대 처리량.. = TCP가 받을 수 있는 최대 Window 크기가 되게 됩니다.
예를 들어, Windows Server 2003, XP의 TCP Receive Window 기본 크기는 64KB였었습니다. 양단간의 RTT가 100ms 일 때, 최대 처리량은 64KB/100ms = 5.12Mbps가 되게 됩니다. 사용 응용 프로그램이 어떠한 제한 사항도 없다면, TCP 송신자는 네트워크에 가용할 수 있는 최대 대역폭을 다 사용할 수 있습니다.
이미 언급한 데로, 기존의 Windows는 전체 시스템에 대해서 TCP Receive Window가 64KB로 고정되어져 있었습니다. 이러한 접근 방식은 대역폭이 점점 커져가는 현실에, 처리량을 제한하는 요소중 하나였습니다. 레지스트리 키중에 TCPWindowSize가 원하는 값으로 Receive Window 크기를 입력할 수 있었지만, 이러한 입력은 시스템 전체에 영향을 주었기 때문에, 특정한 TCP 연결, 다시 말해, 무선에 대한 설정, 유선에 대한 설정은 할 수 없었습니다.
위의 그림은 Receive Window 크기와 RTT값에 따른 최대 처리량을 보여주는 그래프입니다. 보시는 데로, 기본 크기인 64KB로 Receive Window 크기를 사용했을 경우, RTT 값이 커질 수록(다시 말해, 거리가 멀어질 수록) 사용가능한 최대 처리량이 줄어들어는 것을 볼 수 있습니다. 거의 5Mbps 밑이죠. 두 지점간 대역폭이 아무리 좋더라도 실제 사용 가능한 대역폭은 5Mbps이상을 쓰기가 어려웠다는 것입니다. 그렇다고 무조건 Receiving Window 크기가 커야 한다는 의미는 아닙니다. 시스템간이 단일 스위치, 다시 말해, 매우 거리가 가까운 경우에는 RTT값이 매우 작으므로, 무조건 크기를 키우는 것이 능사만은 아닙니다.
이에, Windows Server 2008, Windows Vista에서는 Receive Window 크기에 대해 자동으로 튜닝하는 기능이 추가되었습니다. 모든 연결시, 환경을 파악하여, TCP가 Receive Window 크기를 조절합니다. 이러한 기능을 통해, 네트워크로 더 많은 양의 데이터를 전송하고, 이를 통해 사용자는 빠른 처리 시간을 기대할 수 있습니다. 높은 대역폭, 높은 지연률을 가진, 대륙간, 지역간 네트워크일수록 Windows Server 2008, Windows Vista의 네트워크 튜닝 기능이 매우 유용해질 수 있습니다. Receive Window가 커져서, 네트워크에 문제가 발생할 수 있지 않냐는 질문을 하시지만, 이미 이전 포스팅에 언급드린 데로, TCP는 Congestion Control도 역시 메커니즘의 하나로 가지고 있었습니다.
TCP의 Receive Windows 제어는 송신자가 수신자에게 데이터를 보낼때, 얼마나 많은 양의 확인되지 않은(Unacknowledged) 데이터를 보낼 수 있느냐의 의미입니다.
응답이 빠르다면(거리가 가깝다면), 구지 Receiving Window 크기를 키울 필요가 없다는 것도 이제는 이해가 되실 것입니다. 그러나, RTT가 커졌을 경우, 데이터를 보냈을 때, 이에 대한 확인을 받는 시간이 오래걸리므로, 그만큼 송신자는 네트워크 파이프를 채울 수 있는 많은 시간이 남게 됩니다, 이 경우, Receiving Window 값이 네트워크 파이프를 다 사용하지 못하는 팩터가 된다.. 는 의미입니다. 헥헥..
가장 최적의 크기는 송신자가 네트워크가 유지되는 한도에서 보낼 수 있는 크기라고 볼 수 있습니다. Windows Vista에서부터 해당 기능은 이미 사용중에 있습니다. 이러한 자동 튜닝이 적용되기 위해서는 아래의 몇가지 사항이 만족되어야 합니다.
1. 연결에 대한 지연 > 10ms (RTT)
2. Bandwidth * Latency > 64KB
3. 응용 프로그램에 수신 버퍼 크기가 지정되지 않은 경우
4. 응용 프로그램이 보내주는 데이터의 크기에 상관없이 처리가 되는 경우
이제 또하나의 문제를 제기해야 합니다. TCP의 Receive Window 크기를 지정하는 레지스트리는 16비트입니다. 2에 16승이 65535.. 64KB이므로, Window 크기를 더 늘리려면 레지스트리의 비트가 늘어나던지, 무언가 다른 방법론이 취해져야 합니다. 이에 Windows는 TCP Receive Window Scailing에 관련된 레지스트리를 추가적으로 사용합니다. Window Scailing 옵션을 Windows Vista, Windows Server 2008은 기본적으로 사용합니다.
TCP 연결 시도를 하는 동안, 송신자와 수신자는 Scailing 옵션을 상호 교섭합니다. 만약 원격지에서 이를 지원한다면, Window Scailing 옵션이 사용되게 됩니다, Windows Vista는 Scale 팩터로 8 (2에 8승 = 256)을 사용합니다. 256배가 된다는 뜻이죠.. 64KB X 256 = 16MB의 Receiving Window가 되죠.. 기존값에 비하면 매우 높은 값이며, 이러한 값을 무작정 사용하는 것이 아니라, 원격지 시스템, 네트워크 상태에 따라 자동으로 조절하게 된다는 뜻입니다.
'Network > Netowrk_transport' 카테고리의 다른 글
tcp 강좌 (0) | 2009.01.18 |
---|---|
Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1) (0) | 2009.01.18 |
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
Acknowledgement Mechanism (0) | 2009.01.18 |
Retransmission Mechanism (0) | 2009.01.18 |
'Network > Netowrk_transport' 카테고리의 다른 글
Windows Server 2008이 나오면... (21) - Network Auto-Tuning (1) (0) | 2009.01.18 |
---|---|
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2) (0) | 2009.01.18 |
Acknowledgement Mechanism (0) | 2009.01.18 |
Retransmission Mechanism (0) | 2009.01.18 |
TCP 와 UDP 의 차이점 (0) | 2009.01.18 |
ACK-only segment and Piggybacking : dummy packet 즉, data body가 필요없고, ACK만 필요한 packet. 이러한 경우를 piggybacking 이라 한다.
Delayed ACK : ACK 도 또 하나의 네트워 트래픽을 유발하는 요소라고 판단, 대략 500msec 정도 delay 후에 모든 수신 packet의 ACK을 보내지 않고 일부만 전송
Duplicate ACK : 미 수신된 데이터를 송신측에 알리기 위해서 수신 못 받은 sequence의 ACK을 중복해서 전송하는 것을 의미
'Network > Netowrk_transport' 카테고리의 다른 글
Windows Server 2008이 나오면... (22) - Network Auto-Tuning (2) (0) | 2009.01.18 |
---|---|
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
Retransmission Mechanism (0) | 2009.01.18 |
TCP 와 UDP 의 차이점 (0) | 2009.01.18 |
TCP Header 와 TCP 서비스의 특징 / UDP Header 와 UDP 서비스의 특징 (0) | 2009.01.18 |
- Retransmission Timer : 기본적으로 정해진 재전송 타이머 안에 다음 데이터가 오지 않으면, 전송실패로 인지함
- Estimation of RTT : Round-Trip-Time 즉 송신 후 ACK 수신까지 걸리는 시간이 유일한 재전송 메커니즘의 척도
- Granlarity of RTO : Retransmission Time-Out 즉, 재전송 타임아웃을 어떻게 설정하는 지가 가장 중요
ERTT = (1 - alpha) ERTT + (alpha) * SRTT
흔히 alpha 를 7/8 로 잡는데 즉, 과거의 평균치는 7/8정도의 가중치로 현재의 측정치는 1/8정도의 가중치를 둔다.
RTO (Retransmission Time Out) 구하기
RTO = ERTT + 4 * deviation
deviation = (1 - alpha) * dev + (alpha) * | SRTT - ERTT |
안정화 되면 절대값이 0에 가깝고 dev 가 감소하는 현상을 보인다.
'Network > Netowrk_transport' 카테고리의 다른 글
TCP 타임아웃과 재전송 (0) | 2009.01.18 |
---|---|
Acknowledgement Mechanism (0) | 2009.01.18 |
TCP 와 UDP 의 차이점 (0) | 2009.01.18 |
TCP Header 와 TCP 서비스의 특징 / UDP Header 와 UDP 서비스의 특징 (0) | 2009.01.18 |
Congestion 이란 ? 그리고 언제 발생하나 ? (0) | 2009.01.18 |
Stream-oriented << ====== >> Datagram-oriented
Reliable << ====== >> Unreliable
Flow-control << ====== >> No flow-control
Congestion-control << ====== >> No congestion-control
'Network > Netowrk_transport' 카테고리의 다른 글
Acknowledgement Mechanism (0) | 2009.01.18 |
---|---|
Retransmission Mechanism (0) | 2009.01.18 |
TCP Header 와 TCP 서비스의 특징 / UDP Header 와 UDP 서비스의 특징 (0) | 2009.01.18 |
Congestion 이란 ? 그리고 언제 발생하나 ? (0) | 2009.01.18 |
Flow-Control 이란 ? (0) | 2009.01.18 |