TCP/IP 네트워크 제 1장 서론 정보통신연구실
목차 1.1 개요 1.2 계층화 1.3 TCP/IP 계층화 1.4 인터넷 주소 1.5 DNS (Domain Name System) 1.6 캡슐화(Encapsulation) 1.7 역다중화(Demultiplexing) 1.8 클라이언트-서버 모델 1.9 포트 번호(Port Number) 정보통신연구실
목차 (cont’d) 1.10 표준화 작업과정 1.11 RFC (Request for Comment) 1.12 표준적인 단순 서비스 1.13 인터넷 1.14 구현 1.15 응용 프로그램 인터페이스 1.16 시험네트워크 1.17 요약 정보통신연구실
1.1 개요 TCP/IP 프로토콜 그룹 TCP/IP 프로토콜 집합의 개요와 기본지식 제공 1960 년대 후반 : 패킷 네트워크 연구 프로젝트 1990 년대 : 컴퓨터를 연결하는 일반적인 통신 형식 진정한 개방 시스템(open system)을 가능하게 함 WAN의 기반을 구성 worldwide Internet (Internet) TCP/IP 프로토콜 집합의 개요와 기본지식 제공 정보통신연구실
1.2 계층화 TCP/IP 프로토콜 집합의 4 계층 Telnet, FTP, e-mail 등 TCP, UDP 응용 Telnet, FTP, e-mail 등 트랜스포트 TCP, UDP 네트워크 IP, ICMP, IGMP 링크 장치 드라이버와 인터페이스 정보통신연구실
계층화 (cont’d) 링크(link)층, 데이터 링크(data link)층, 네트워크 인터페이스(network interface)층 운영체제의 디바이스 드라이버와 네트워크 인터페이스 카드 포함 연동되어 있는 케이블의 물리적인 인터페이스와 관련된 하드웨어적인 부분 제어 네트워크(network)층, 인터넷(internet)층 네트워크 상의 패킷의 이동 제어(패킷 라우팅) IP, ICMP, IGMP으로 구성 정보통신연구실
계층화 (cont’d) 트랜스포트(transport)층 ~ 상위 응용 층에 대해 두 호스트간의 데이터 흐름을 제공 TCP 두 호스트간의 신뢰성 높은 데이터 흐름을 제공 (분할, 패킷 식별, 타임 아웃 설정 기능) UDP 아주 단순한 서비스를 응용 층에 제공 정보통신연구실
계층화 (cont’d) 응용(application)층 특정 응용에 대한 상세한 동작을 처리 공통 응용 Telnet FTP(File Transfer Protocol) SMTP(Simple Mail Transfer Protocol) SNMP(Simple Network Management Protocol) 정보통신연구실
계층화 (cont’d) LAN상의 두 호스트가 FTP를 실행하는 경우의 예 IP 응용 FTP 클라이언트 FTP 프로토콜 FTP 처리세부 사항을 다룬다. 응용 FTP 클라이언트 FTP 프로토콜 FTP 서버 사용자 프로세스 트랜스포트 TCP 프로토콜 TCP TCP 커널 처리세부 사항을 다룬다. 네트워크 IP 프로토콜 IP IP 링크 이더넷 드라이버 이더넷 프로토콜 이더넷 드라이버 이더넷 정보통신연구실
계층화 (cont’d) 인터넷을 구성하는 가장 쉬운 방법 라우터를 통해 둘 또는 그 이상의 네트워크를 연결 정보통신연구실 라우터를 통해 둘 또는 그 이상의 네트워크를 연결 FTP 프로토콜 FTP 클라이언트 FTP 서버 TCP 프로토콜 TCP TCP 라우터 IP 프로토콜 IP 프로토콜 IP IP IP 이더넷 드라이버 이더넷 드라이버 이더넷 프로토콜 토큰링 드라이버 토큰링 프로토콜 토큰링 드라이버 이더넷 토큰링 정보통신연구실
계층화 (cont’d) 멀티 홈드 시스템 인터넷이 강력하고 편리한 이유 브리지 ~ 복수의 인터페이스를 갖는 시스템 호스트가 라우터 기능을 수행하도록 특별하게 구성할 수 있다. 상황에 따라 호스트 혹은 라우터라 부른다. 인터넷이 강력하고 편리한 이유 응용으로부터 네트워크 접속에 따른 물리적인 부분이 감추어져 있기 때문이다. 브리지 네트워크를 연결하는 또 다른 방법으로 링크층을 접속한다. 정보통신연구실
1.3 TCP/IP 계층화 정보통신연구실 사용자 프로세스 사용자 프로세스 사용자 프로세스 사용자 프로세스 응용 TCP UDP 트랜스포트 ICMP IP IGMP 네트워크 ARP 하 드 웨 어 RARP 링크 인터페이스 매체 정보통신연구실
TCP/IP 계층화(cont’d) TCP와 UDP TCP 응용 UDP 응용 Telnet과 Rlogin FTP SMTP DNS TFTP(Trivial File Transfer Protocol) Bootstrap Protocol SNMP(Simple Network Management Protocol) 정보통신연구실
TCP/IP 계층화 (cont’d) IP ICMP(Internet Control Message Protocol) ~ IP층을 이용해서 에러메시지 교환과 다른 중요한 정보를 다른 호스트나 라우터의 IP 층과 교환 응용층에서 직접 액세스 PING, Traceroute IGMP( Internet Group Management Protocol) ~ 복수의 호스트에 UDP 데이터 그램을 송신하는 멀티캐스팅에 이용되는 프로토콜 정보통신연구실
TCP/IP 계층화 (cont’d) ARP와 RARP ~ IP 주소와 MAC 주소 간의 변환에 사용된다. (4,5 장 참조) 정보통신연구실
1.4 인터넷 주소 인터넷 상의 모든 인터페이스는 고유의 인터넷 주소(Internet address, IP 주소)를 갖는다. 7 비트 14 비트 24 비트 16 비트 1 1 1 1 1 1 0 1 1 1 1 0 21 비트 8 비트 28 비트 27 비트 netid hostid 멀티캐스트 그룹 ID ( 나중에 사용하기 위해 예약 ) 클래스 A B C 클래스 D E 정보통신연구실
인터넷 주소(cont’d) 네트워크의 IP주소 관리 조직 클래스 범 위 A 0.0.0.0 ~ 127.255.255.255 B 128.0.0.0 ~ 191.255.255.255 C 192.0.0.0 ~ 223.255.255.255 D 224.0.0.0 ~ 239.255.255.255 E 240.0.0.0 ~ 247.255.255.255 네트워크의 IP주소 관리 조직 InterNIC (Internet Network Information Center) 등록서비스, 디렉토리와 데이터 베이스 서비스, 정보 서비스 KRNIC 국내의 IP주소와 도메인 이름 할당 정보통신연구실
인터넷 주소(cont’d) IP주소의 유형 유니캐스트(Unicast, 단일 호스트) 브로드캐스트 (broadcast, 특정 네트워크상의 모든 호스트) 멀티 캐스트(multicast, 멀티캐스트 그룹에 속하는 호스트) 정보통신연구실
1.5 DNS(Domain Name System) ~ IP 주소와 호스트 이름간의 대응관계 정보를 제공하는 분산 데이터 베이스 (14장 참조) IP 주소 호스트 명 상호 간의 검색이 가능하다 정보통신연구실
1.6 캡술화(Encapsulation) TCP를 이용한 데이터 전송 ~ 데이터의 전송 시 각 계층은 데이터가 목적지에 전달되도록 수신된 데이터에 각종 헤더(header)와 데이터 트레일러(trailer) 정보를 추가한다 . TCP 세그먼트 (segment) ~ TCP가 IP에 전송하는 데이터 단위 IP 데이터그램(datagram) ~ IP가 네트워크 인터페이스로 전송하는 데이터 단위 프레임(frmae) ~ 이더넷 네트워크를 통하여 전달되는 비트 스트림 정보통신연구실
캡술화(Encapsulation) (cont’d) 이더넷 프레임의 물리적 특성에 따른 데이터의 크기 : 46~1500 바이트 UDP를 이용한 데이터 전송 UDP가 IP로 전송하는 정보 단위는 UDP 데이터 그램 UDP 헤더의 크기 : 8 바이트 IP의 식별자 유형 (8비트) TCP 6 UDP 17 ICMP 1 IGMP 2 정보통신연구실
캡술화(Encapsulation) (cont’d) TCP와 UDP의 16비트 포트번호(port number) ~ 헤더에 응용을 식별하기 위한 발신지 포트 번호와 목적지 포트 번호를 저장한다. 이더넷 헤더의 16-비트 프레임 타입(type)필드 ~ 네트워크층 프로토콜이 데이터를 생성한 것을 식별한다. 정보통신연구실
캡술화(Encapsulation) (cont’d) 사용자 데이터 응용 응용 사용자 헤더 데이터 TCP TCP 헤더 응용 데이터 TCP 세그먼트 IP IP 헤더 TCP 헤더 응용데이터 IP 데이터그램 이더넷 드라이버 이더넷 헤더 응용 데이터 이더넷 IP 헤더 TCP 헤더 트레일러 14 20 20 4 이더넷 이더넷 프레임 46 에서 1500 바이트 정보통신연구실
1.7 역다중화(Demultiplexing) ~ 이더넷 프레임이 목적지 호스트에 수신되면, 프로토콜 스택을 올라가면서 헤더의 식별자를 보고 데이터를 전송할 다음 상위 층을 결정하는 과정 … … 응용 응용 응용 응용 TCP 또는 UDP 헤더의 목적지 포트 번호를 기반으로 한 역다중화 TCP UDP ICMP IGMP IP 헤더의 프로토콜 값을 기반으로 한 역 다중화 IP ARP RARP 이더넷 헤더의 프레임 유형을 기반으로 한 역 다중화 이더넷 드라이버 수신 프레임 정보통신연구실
1.8 클라이언트-서버 모델 응용의 목적은 클라이언트에 대해서 서버가 어떤 정의된 서비스를 제공하는 것이다. 반복 서버(iterative server) : TCP 서버 1. 클라이언트로부터 요구가 오기를 기다린다. 2. 클라이언트의 요구를 처리한다. 3. 요구를 송신한 클라이언트에게 응답을 보낸다. 4. 단계 1로 돌아간다. 단계 2 처리과정에서 다른 클라이언트에게 서비스를 제공하 지 못한다. 정보통신연구실
클라이언트-서버 모델(cont’d) 병렬서버(concurrent server) : UDP 서버 1. 클라이언트로부터 요구가 오기를 기다린다. 2. 클라이언트의 요구를 처리하기 위한 새로운 서버를 시작한다. 처리를 마치면, 이 새로운 서버는 종료한다. 3. 단계 1로 돌아간다. 병렬 서버의 이점은 클라이언트의 요구를 처리하기 위해 새로운 별도의 서버를 가동하여 복수의 클라이언트가 동시에 서비스를 받을 수 있다. 정보통신연구실
1.9 포트번호(Port Number) 각 서비스 별 포트번호 ~ TCP와 UDP가 응용을 식별하기 위해서 16비트 포트 번호를 이용한다. 각 서비스 별 포트번호 IANA( Internet Assigned Numbers Authority)에 의해 1 ~1023까지의 포트번호가 관리되고 있다. FTP TFTP Telnet 21 69 23 Rlogin 513 정보통신연구실
포트번호(Port Number) (cont’d) 클라이언트 포트번호 (ephemeral 포트) ~ 하나의 클라이언트는 사용자가 서비스를 필요로 하는 동안만 존재 1,024 ~ 5,000까지 포트 번호 할당 UNIX 시스템에서의 포트 번호 /etc/services 파일에 들어 있다. 정보통신연구실
포트번호(Port Number) (cont’d) Telnet 서버와 DNS에 대한 포트 번호 알아내기 예약된 포트 ~ 수퍼 유저 권한을 가진 프로세스에 의해 할당할 수 있는 1~1023 사이의 포트 번호 sun % grep telnet /etc/services telnet 23/tcp sun % grep domain /etc/services domain 53/udp domain 53/tcp TCP 포트 23을 사용한다. UDP 포트 53을 사용한다. TCP 포트 53을 사용한다. 정보통신연구실
1.10 표준화 작업과정 1. ISOC(Internet Society) TCP/IP 프로토콜을 관리하고, 새로운 표준안을 승인하는 등의 일을 하는 인터넷 기술 그룹 1. ISOC(Internet Society) 인터넷의 발전과 성장을 촉진하는 전문적인 단체 2. IAB(Internet Architecture Board) 기술면에 대한 관리, 조정하는 조직 인터넷 표준안에 대한 책임을 맡고 있다 정보통신연구실
표준화 작업과정 (cont’d) 3. IETF(Internet Engineering Task Force) 단기적인 표준정책그룹 (응용, 라우팅, 주소지정, 정보보호 등의 9개 영역으로 나뉨) 인터넷 표준에 대한 규격을 개발 4. IRTF(Internet Research Task Force) 장기적인 연구프로젝트 추진 정보통신연구실
RFC 자료를 입수하는 방법에 대한 자세한 자료를 보내준다. ~ 인터넷에 대한 모든 공식적인 표준안에 대한 문서 양식으로 고유 번호가 부여된다. FTP와 전자 메일을 통해 RFC의 자료를 입수한다. To : rfc-info@ISI.EDU Subject : getting rfcs Help : ways_to_get_rfcs E-Mail RFC 자료를 입수하는 방법에 대한 자세한 자료를 보내준다. 정보통신연구실
RFC(cont’d) RFC에 대한 중요사항 1. 할당된 번호 RFC(Assigned Numbers RFC)는 인터넷 프로토콜에서 사용하고 있는 모든 매직 넘버(magic number)나 정수 등이 정의되어 있다. 이 책을 집필할 시점에 이 RFC의 가장 최신 버전은 1700[Reynolds and Postel 1994]까지 이다. 2. IAB의 공식 프로토콜 표준은 현재 RFC 1600[Postel 1996]까지 되어 있다. 표준화 상태 :표준안(standard), 표준 초안(draft standard), 실험중(experimental), 참고(informational), 또는 역사적(historic) 정보통신연구실
RFC(cont’d) 3. 호스트 요구사항 RFC 4. 라우터의 요구사항 RFC : RFC 1009 요구레벨 : 요구(required), 권고(recommended), 후보(elective), 제한 사용(limited use), 또는 비권고(not recommended) 등 3. 호스트 요구사항 RFC RFC 1122 : 링크 층, 네트워크 층, 트랜스포트 층을 대상 RFC 1123 : 응용 층을 대상 프로토콜의 기능구현과 세부 사항에 대한 구분 : 필수(must), 의무(should), 가능(may), 불가능(should), 절대불가(must not) 4. 라우터의 요구사항 RFC : RFC 1009 정보통신연구실
1.12 표준적인 단순 서비스 대부분의 구현에서 제공되고 있는 표준적인 단순 서비스 이름 TCP 포트 UDP RFC 적용 Echo 7 7 862 서버는 클라이언트가 보낸 모든 데이터를 되돌려 보낸다. Discard 9 9 863 서버는 클라이언트가 보낸 모든 데이터를 되돌려 무시한다. Daytime 13 13 867 서버는 사람이 읽을 수 있는 형식으로 시간과 날짜를 되돌려 보낸다. Chargen 19 19 864 TCP 서버는 연결이 클라이언트에 의해 끊어질 때까지 연속된 문자열을 송신한다. UDP 서버는 클라이언트가 데이터 그램을 보낼 때마다 임의의 개수의 문자를 포함한 데이터 그램을 보 낸다. Time 37 37 868 서버는 2진 숫자로 시간을 되돌려 보낸다. 이 숫자는 UTC (협정 표준시)로 1900년 1월 1일 0시부터 초 단위로 계산된 시간을 나타낸다. 정보통신연구실
1.13 인터넷 소문자로 된 인터넷(internet) 대문자로 된 인터넷(Internet) 공통 프로토콜을 그룹을 사용하는 복수의 네트워크를 접속한 것을 의미한다. 대문자로 된 인터넷(Internet) TCP/IP를 사용하여 전세계의 호스트와 상호 통신이 가능한 대규모 네트워크를 말한다. 대문자로 된 인터넷은 소문자로 된 인터넷도 되지만, 그 역은 성립하지 않는다. 정보통신연구실
1.14 구현 TCP/IP의 사실상 표준은 캘리포니아 대학의 컴퓨터 시스템 연구그룹이 제공한 것이다. 4.x BSD 계열과 BSD 네트워킹 릴리즈로 배포 다른 많은 구현에 대한 출발점 정보통신연구실
구현 (cont’d) 중요한 기능을 가진 다양한 BSD 릴리즈 정보통신연구실 4.2 BSD (1983) 최초에 일반 이용이 가능한 릴리즈 4.3 BSD (1986) TCP 처리 능력을 개선 4.3 BSD Tahoe (1988) 늦은 시작 혼잡회피 BSD 고속 재전송 네트워킹 소프트웨어 릴리즈 1.0(1989): Net/1 4.3 BSD Reno(1990) 고속 회복 TCP 헤더 예측, SLIP 헤더 압축 BSD 네트워킹 소프트웨어 라우팅 테이블 변경 릴리즈 2.0(1991): Net/2 4.4 BSD (1993) 멀티캐스팅 4.4 BSD- Lite (1994) “ long fat pipe” Net/3 라고도 함 정보통신연구실
1.15 응용프로그램 인터페이스 (API) 소켓(socket) TLI(Transport Layer Interface) 버클리 소켓(Berkly sockets)이라고도 함. TLI(Transport Layer Interface) XTI(X/Open Transport Interface)라고 부르기도 함 정보통신연구실
도메인 : .tuc.noao.edu IP주소 : 클래스 B 네트워크 ID 140.252 1.16 시험 네트워크 도메인 : .tuc.noao.edu IP주소 : 클래스 B 네트워크 ID 140.252 인터넷 AIX 3.2.2 Solaris 2.2 SunOS 4.1.1 .104.1 aix solaris gemini gateway 시스코 라우더 .1.92 .1.32 .1.11 .1.4 이더넷 .1.183 Telebit netb NetBlazer modem SLIP ( 다이얼업 ) modem BSD/386 1.0 BSD/386 1.0 SunOS 4.1.3 .1.29 SVR4 SLIP slip Bsdi sun svr4 .13.65 .13.33 .13.34 이더넷 svr4.tuc.noao.edu 정보통신연구실
1.17 요약 TCP/IP 프로토콜 집합 인터넷은 네트워크의 집합으로 라우터를 통해 네트워크를 접속한다. DNS는 호스트 명과 IP 주소간의 대응관계 제공 포트번호는 응용을 식별하는 데 사용된다. 표준화 과정과 RFC TCP/IP의 구현과 API 정보통신연구실