530 likes | 871 Views
인터넷 , TCP/IP, 라우팅 (Classical Internet). 1999 년 7 월 6 일 고려대학교 전자 및 정보공학부 강 현 국. 2. 차 례. 1. 소개 2. 프로토콜 계층화 3. LAN 4. Ethernet 5. 인터넷 구조 6. 인터넷 주소 7. 점 십진 표기 8. ARP 9. 인터넷 프로토콜 10. ICMP. 11. UDP 12. TCP 13. Routing 14. Client-Server Model 15. DNS 16. Telnet
E N D
인터넷, TCP/IP, 라우팅(Classical Internet) 1999년 7월 6일 고려대학교 전자 및 정보공학부 강 현 국
2 차 례 • 1. 소개 • 2. 프로토콜 계층화 • 3. LAN • 4. Ethernet • 5. 인터넷 구조 • 6. 인터넷 주소 • 7. 점 십진 표기 • 8. ARP • 9. 인터넷 프로토콜 • 10. ICMP • 11. UDP • 12. TCP • 13. Routing • 14. Client-Server Model • 15. DNS • 16. Telnet • 17. FTP (File Transfer Protocol) • 18. SMTP와 MIME • 19. TCP/IP 프로토콜 ‘99하계단기계속교육강좌: 광대역정보통신
소 개 • 통신 기술 • 프로토콜 • 하드웨어와 드라이버 • 응용 • OS
통신 이란? • “보내는 자가 받는 자에게 정보를 정확하게(효율적으로) 전달하는 것” • “정확하게” • 송수신자간의 준비 • 통신 모드 설정 • 통신 환경에 적합 • 정보 전달 속도 • 통신/정보의 시작과 끝을 통지 • 정보의 무결성 • 정보의 전달량을 제어 • 정보의 전달 경로를 제어
통신 이란? (계속) • “효율적으로” • 작은 밴드폭 • no dc • cloking • 오류 검출 • 잡음 • 경제성
프로토콜 계층화 • 프로토콜 소프트웨어의 개념적 구성
LAN • Ethernet • Token-Ring • Token-Bus • FDDI • ATM-LAN • IPOA • LE • MPOA • MPLS
Ethernet • CSMA/CD (Carrier Sense Multiple Access/ Collision Detection) • Ethernet Cable • Transceiver • Transceiver cable • Terminator • Hub • Tab • Ethernet Adapter • Bridge • Router
인터넷 구조 • TCP/IP 인터넷에서 라우터나 게이트웨이 라고 불리는 컴퓨터들은 물리적인 망들 사이에서 상호 연결을 제공한다. • 라우터들은 하나의 패킷에 대해 경로를 설정할 때 목적지 호스트가 아니라 목적지 망을 사용한다. • TCP/IP 인터넷 프로토콜은 모든 망들을 동등하게 처리한다. 이더넷같은 LAN, ANSNET과 같은 WAN, 각 기계들 사이의 점대점 링크등 각각을 하나의 망으로 생각한다.
인터넷 주소 구조 • 3단계 : 물리주소 + IP 주소(망 주소 + 호스트 주소) + Port 주소
IP 주소 • TCP/IP 인터넷상의 각 호스트는 유일한 32비트 인터넷 주소를 할당 받고, 이 주소는 모든 통신에서 사용된다. • 만약 호스트 컴퓨터가 한 망에서 다른 망으로 옮기면, 호스트의 IP 주소도 변경해야 한다.
ARP (Address Resolution Protocol) • 주소 해결 프로토콜 ARP는 한 호스트가 대상 호스트의 IP 주소만으로 같은 물리적 망 상에 있는 대상 호스트의 물리 주소를 찾을 수 있도록 해 준다. • ARP는 모든 기계에 임의의 IP 주소를 할당할 수 있게 하여 내재되어 있는 망 물리 주소를 숨겨주는 하위 프로토콜이므로 물리망 시스템의 한 부분이지 인터넷 프로토콜의 한 부분이 아니다.
인터넷 프로토콜(IP) • 인터넷은 계층적으로 배열된 세 개의 개념적 서비스 중심으로 설계되었다. 인터넷의 구조가 놀라울 정도로 잘 짜여져 있고, 개조가 용이하기 때문에 성공할 수 있었다. • 응용 서비스 • (신뢰성 있는) 트랜스포트 서비스 • 비연결 패킷 전달 서비스
Routing (경로배정) • 정보를 숨기고, 경로설정 테이블을 작게 유지하고, 경로 설정 결정을 효과적이게 하기 위해서, IP 경로설정 소프트웨어는 각 호스트 주소에 대해서가 아닌 목적지 망 주소에 대한 정보만을 유지한다.
ICMP(Internet Control Message Protocol) • 인터넷 제어 메세지 프로토콜(ICMP)는 라우터가 다른 라우터나 호스트들에게 오류 및 제어 메세지들을 송신하도록 한다. ICMP는 한 기계상의 IP소프트웨어와 다른 기계상의 IP 소프트웨어간의 통신을 제공한다. • 데이타그램에 오류가 발생되었을 때, ICMP는 데이타그램의 원래 근원지에 오류상태를 보고만 한다. 근원지는 개별적 응용 프로그램에 그 오류를 연계시켜 주거나 문제를 수정하기 위한 다른 행동을 취해야 한다
UDP(User Datagram Protocol) • 사용자 데이타그램 프로토콜(UDP)은 기계들간의 메세지들을 전송하기위해 IP를 이용하여 비 신뢰적, 비 연결형 전달 서비스를 제공한다. UDP는 메세지들을 전달하기 위해 IP를 사용하지만, 한 호스트 컴퓨터내에서 여러 목적지들을 구별하기 위한 능력을 추가한다. • UDP 계층이 한 호스트내에 여러 근원지들 또는 목적지들 간의 구별에만 책임을 지는 반면, IP 계층은 인터넷상에서 한 쌍의 호스트간의 데이타 전달에만 책임을 진다.
Pseudo-Header • Checksum은 목적지에 정확히 전달되었는지 검사를 하여야 하나, UDP에는 IP 주소가 없으므로 하위의 IP 주소를 미리 보고 검사합 • Checksum = UDP 헤더(checksum = 0) + 사용자 데이터 + pseudo-header 를 16 비트 단위로 1의 보수를 합하고, 다시 1의 보수 값
TCP(Transmission Control Protocol) • Virtual Circuit 설정 • Reliable Stream Orientation • 추상적으로 말해서, TCP는 프로토콜 포트가 아닌, 한쌍의 종점들에 의해 구별되는 연결을 사용한다. • TCP는 한쌍의 종점으로 연결을 구별하기 때문에, 같은 기계상에서 주어진 TCP포트 번호는 다중 연결들로 나누어 사용될 수 있다.
TCP 연결 • TCP 연결 설정 : 3-way handshake • TCP 연결의 구분 : (src_ip, src_port, dest_ip, dest_port)
Karn’s Algorithm • RTT = ( old_RTT) + (1 - ) new_RTT) • Timeout = RTT • Karn’s Algorithm = RTT와 timeout 계산을 분리 전송이 정상적이 아닐 때 (timeout 발생 시) new_timeout = timeout 로 수정 timeout이 발생하지 않으면, 비로소 RTT 계산 후 timeout 값 계산
Jacobson/Karel’s Algorithm • Diff = Sample RTT - Old_RTT • Smoothed_RTT = Old_RTT + diff • DEV = Old_Dev + (Diff - Old_DEV) • Timeout = Smoothed_RTT + DEV • = 1/(23), = 1/(22), = 3 • (4.3 BSD UNIX) = 2 • (4.4 BSD UNIX) = 4
Relationship between TCP send buffer(letf) and receive buffer(right)
Congestion Control (1) • Self-clocking • Assumption : 모든 오류는 congestion에서 주로 발생 • EffectiveWindow = MaxWindow (LastByteSent LastByteAcked) where MaxWindow = min(CongestionWindow, AdvertizedWindow) • Multiplication Decrease • Timeout 발생시 마다 CongestionWindow를 반으로 • CongestionWindow = max(CongestionWindow/2, 1) CongestionWindow 1 = MSS Byte • Additive Increase • CongestionWindow 만큼의 성공적인 전송 후 1씩 증가 • 실제로는 각 ACK마다 MSS 부분 증가 Increment = (MSS MSS) / CongestionWindow CongestionWindow += Increment
Congestion Control (2) • Slow Start • ACK마다 CongestionWindow를 1 씩 증가 • Slow Start는 상대적으로 AdvertizedWindow만큼 단번에 전송하지 않는다는 의미
Congestion Control (3) • CongestionThreshold = 처음 Multiplicative Reuse 발생 시 CongestionWindow의 반
Congestion Control (4) • Packet 손실시, 이전에는 timeout에 의해 재전송 하게 되어 있었으나 Fast Retransmit는 Duplicate ACK를 사용하여 송신자가 손실을 감지하여 timeout전에 재전송 하도록 하게 함 • 일반적으로 Slow Start를 방지
Congestion Control (5) • Fast Recovery • Fast Retransmit는 window 크기가 작은 경우에 slow start를 방지 못함. • Fast Recovery는 패킷 손실 발생시 congestion window를 반으로 줄이고 Additive Increase
Congestion Avoidance • DEC bit : • RED Gateways • Source-Based Congestion Avoidance
TCP-Tahoe : BSD Network Release 1.0 (BNR1) • Congestion Control • Fast Retransmission • TCP-Reno : BSD Network Release 2.0 (BNR2) • Fast Recovery • Header Prediction • Delayed ACK • TCP-Vegas % 4.4 BSD Unix • Large Window • Source-Based Congestion Avoidance
Routing Protocol in Internet • Exterior Routing Protocols • Routing Protocols among AS • BGP-4 • Interior Routing Protocols • Routing Protocols with AS • Routing Information Protocol (RIP) • Open Shortest Path First(OSPF)
BGP-4 • RFC 1771, 1995 March • AS 간의 정보 • RIP, OSPF, CIRP 지원 • TCP (port 179) 상에서 동작.
Distance - Vector Algorithm • Bellman -Ford Algorithm • “ A node tells its neighbors the distance from it to every other node in the network ” • Routing Information Protocol (RIP)
Least-state Algorithm • Dijkstra’s Algorithm • “ A node tells every other node in the network its distance to it neighbor ” • Open Shortest Path First (OSPF)
RIP • UDP (port 520) • Request / Response (30 sec) • simple • Inadequate to large networks • Not best path : hop only • long convergence time • routing loop
OSPF • In IP directly • RFC 1131 • Type of service routing • load balancing • authenticated routing • heavy load
Client-Server Model • 서버는 상호 동작이 시작되기 전에 실행하기 시작하여, (일반적으로) 끊임없이 요청을 수락하고 응답을 보낸다. 클라이언트는 요청을 만들고 응답을 기다리는 임의의 프로그램이며, (일반적으로) 유한한 횟수동안 서버를 사용한 뒤에 종료한다. • 서버는 자신이 제공하는 서비스를 위해서 예약된 well-known 포트에서 요청을 기다린다. 클라이언트는 임의의 사용되지 않는, 예약되지 않는 포트를 자신의 통신 목적으로 할당한다.
DNS(Domain Name System) • DNS 서버 • 이름을 IP주소로 변환 • 도메인 이름의 해결 • 1. DNS서버가 질의를 받았을때 • 2. IP주소를 찾으면 보내준다. • 3. 못 찾으면 상위 서버에 문의