Fall 2009 Ch.1 TCP/IP, Linux 라우터와 라우팅 프로토콜 한국항공대학교 윤종호.

Slides:



Advertisements
Similar presentations
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Advertisements

멀티미디어 서비스를 위한 IP 네트워크 순천향대학교 정보기술공학부 이 상 정
조준희 (Cho, Junhee) TCP/IP 조준희 (Cho, Junhee)
Mobile Cloud Messaging Package
Chapter 7 ARP and RARP.
Introduction to Django
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
TCP/IP 통신망 특론 3장 인터넷프로토콜( IP ).
Chapter 13 전송층 개요.
Understanding of Socket and File I/O
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
Network Lab. Young-Chul Hwang
이번 시간에는... 지난 시간에는 모바일 응용 프로토콜의 첫번째 시간으로, 모바일에 사용되는 다양한 응용 프로토콜과 모바일 웹 서비스 응용 프로토콜로써 XML 및 SMIL 동기화 멀티미디어 통합 언어에 대해 알아보았습니다. 이번 시간에는 모바일 응용 프로토콜, 그 두번째.
TCP/IP 소켓 프로그래밍 - C 버전 중에서
BLUE TOOTH 인터넷미디어공학부 배지태.
Linux LVS Tutorial Austin.
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
Internet Control Message Protocol (ICMP)
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
Network 네트워크 이론 및 실습 TCP / IP 4장.
Minicom,tftp,nfs설정,vnc설정
Web Servers (IIS & Apache)
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
10. About TCP / IP SPARCS 08 우성필.
Chapter 03. 소켓 주소 구조체 다루기.
Domain Name System (DNS)
Chapter 02 네트워크에 대한 이해.
Network Lab. Seoung Hyeon, Lee
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
Development Environment of Embedded System : part 1
Internet Address Conversion Functions
3장. 소켓 주소 구조체 다루기 소켓 주소 구조체의 정의와 초기화 방법을 익힌다.
인터넷 주소 변환 School of Electronics and Information. Kyung Hee University.
7장 목차 7.1 멀티미디어 네트워킹 응용 7.5 다양한 서비스 클래스 제공 7.2 스트리밍 저장 오디오 및 비디오
운 영 체 제 실 습 6. 네트워크 관리.
Processing resulting output
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
TCP/IP와 라우팅프로토콜한국항공대학교 윤종호
프로젝트 발표 순서 12/7(수), 팀 별 15분 발표순서 PPT (팀 별 이름, 구현 내용, 결과-그래프 포함) 각 기법당
Chapter 03. 소켓 주소 구조체 다루기.
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
Device Driver 임베디드 시스템 I.
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
School of Electronics and Information. Kyung Hee University.
Transmission Control Protocol (TCP)
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
User Datagram Protocol (UDP)
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
Chapter 4 네트워크 계층 소개.
Chapter 16 Socket Interface.
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Operating System Multiple Access Chatting Program using Multithread
Internet & WWW Protocols
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
Chapter 27 Mobile IP.
Internet 인공지능연구실
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
Chapter 03. 소켓 주소 구조체 다루기.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
Department of Computer Engineering
Presentation transcript:

Fall 2009 Ch.1 TCP/IP, Linux 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Internet, packet switched network 인터넷: 컴퓨터들을 연결한 통신망 Computer Networks 패킷교환망 packetization: 메시지  패킷 중계 routing based on IP addr bridging based on Ethernet Address Store-and-Forward, Cut-Through Switching 2 Services Connection-Oriented Service : reliable with TCP Connectionless Service : less delay with UDP 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Protocol = 통신장치간에 교환되는 표준화된 패킷의 형식과 절차 규정 표준화 기구 IETF IEEE802 etc… IP related protocols RFC IEEE802 LAN related protocols etc… 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

TCP/IP layered architecture 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Network Layer 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

데이터 전달과정 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

(tcp/udp) Port 응용프로세스 식별자 Well-known port 임시 포트 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Connection, Association {protocol, local-address, local-process, remote-address, remote-process} half-association: {protocol, local-address, local-process} : 소켓 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Byte-Stream , Push, Message TCP: 스트림(stream)방식 byte단위 전송. 운영체제가 임의의 바이트열을 TCP에 수납하여 전송. push 기능: 텔넷과 같은 경우, 버퍼의 내용을 한꺼번에 송신하는 기능 UDP : 메시지 방식 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Out-of-band 전송 Ctrl+C입력 경우 별도의 버퍼 사용 우선 처리 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Byte Order Little-endian : Intel Big-endian : Motorola Network byte order : Big-endian 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Process, Daemon 프로세스(process): 독립적으로 동작 가능한 단위 프로그램 데몬(daemon): 백그라운드(background) 프로세스, event발생시 까지 대기. 상주 데몬: SNMP나 HTTP 데몬, xinetd 데몬 등 /etc/rc.d/init.d/” 디렉토리에 위치. 필요시 호출되어 동작하는 데몬: 텔넷(Telnet), FTP, echo, daytime, discard 데몬 상주 데몬인 xinetd 데몬에 의해 호출됨. xinetd데몬은 supersever 또는 수퍼데몬이라고도 불림. “/etc/xinetd.d” 디렉토리에 위치. 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Application architectures Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Client-server archicture always-on host permanent IP address server farms for scaling clients: communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Pure P2P architecture no always on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses example: Gnutella Highly scalable But difficult to manage 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Hybrid of client-server and P2P Napster File transfer P2P File search centralized: Peers register content at central server Peers query same central server to locate content Instant messaging Chatting between two users is P2P Presence detection/location centralized: User registers its IP address with central server when it comes online User contacts central server to find IP addresses of buddies 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Processes communicating Client process: process that initiates communication Server process: process that waits to be contacted Process: program running within a host. within same host, two processes communicate using inter-process communication(IPC) (defined by OS). processes in different hosts communicate by exchanging messages Note: applications with P2P architectures have both client processes & server processes 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Sockets process sends/receives messages to/from its socket TCP with buffers, variables socket host or server process TCP with buffers, variables socket host or server process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process relies on transport infrastructure on other side of door which brings message to socket at receiving process controlled by app developer Internet controlled by OS API: (1) choice of transport protocol; (2) ability to fix a few parameters 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

소켓과 소켓 라이버러리 소켓: TCP/IP : 커널에 위치함. {Protocol, IP주소, 포트번호}의 조합 특정 응용계층의 서비스를 식별하는 식별자 read/write 형식으로 데이터의 입 출력이 가능한 일종의 디바이스로 간주됨. file descriptor로 식별됨. sockfd(socket file descriptor)라고 부름. TCP/IP : 커널에 위치함. 소켓 라이버러리: 응용계층 프로그래머들이 커널내의 TCP/IP의 사용을 용이하게 한 네트워킹 라이버러리. Socket API로 접근. 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

“My First Socket Program” #include <netinet/in.h> struct in_addr{ union{ struct {u_char sb_1,sb_2,sb_3,s_b4;} S_un_b; struct { u_short s_w1, s_w2;} S_un_w; u_long S_addr; }S_un; }; struct sockaddr_in{ short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; main(){ int sockfd; struct sockaddr_in saddr; unsigned char buffer[20];   sockfd = socket(AF_INET,SOCK_DGRAM,0); printf(“sockfd = %u\n”,sockfd); memset((char *)&saddr,0x00,sizeof(struct sockaddr)); saddr_in.sin_family = AF_INET; saddr_in.sin_port = htons(9); //echo port saddr_in.sin_addr.S_un.s_addr = inet_addr(“200.0.1.2”); bind(sockfd.&saddr, sizeof(struct sockaddr)); buffer = “My First Socket”; sendto(sockfd,buffer,strlen(buffer)+1,flags,&saddr,sizeof(struct sockaddr)); receivefrom(sockfd, buffer, sizeof(buffer), ),0,&saddr,sizeof(struct sockaddr)); //blocked until receives printf(“%s\n”,buffer); close(sockfd); } 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

리눅스에서의 TCP/IP *TCP/IP in Kernel 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Addressing processes For a process to receive messages, it must have an identifier A host has a unique 32-bit IP address Q: does the IP address of the host on which the process runs suffice for identifying the process? Answer: No, many processes can be running on same host Identifier includes both the IP address and port numbers associated with the process on the host. Example port numbers: HTTP server: 80 Mail server: 25 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

App-layer protocol defines Types of messages exchanged, eg, request & response messages Syntax of message types: what fields in messages & how fields are delineated Semantics of the fields, ie, meaning of information in fields Rules for when and how processes send & respond to messages Public-domain protocols: defined in RFCs allows for interoperability eg, HTTP, SMTP Proprietary protocols: eg, KaZaA 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” other apps (“elastic apps”) make use of whatever bandwidth they get Timing some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Transport service requirements of common apps Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games instant messaging Data loss no loss loss-tolerant Bandwidth elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up Time Sensitive no yes, 100’s msec yes, few secs yes and no 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Internet transport protocols services TCP service: connection-oriented: setup required between client and server processes reliable transport between sending and receiving process flow control: sender won’t overwhelm receiver congestion control: throttle sender when network overloaded does not provide: timing, minimum bandwidth guarantees UDP service: unreliable data transfer between sending and receiving process does not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee Q: why bother? Why is there a UDP? 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Internet apps: application, transport protocols layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] proprietary (e.g. RealNetworks) (e.g., Dialpad) Underlying transport protocol TCP TCP or UDP typically UDP Application e-mail remote terminal access Web file transfer streaming multimedia Internet telephony 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

미리 설치해야 할 서버 프로그램 l Telnet l FTP l DNS l RARP l TFTP l DISCARD l DHCP l Apache 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

실험망의 구성 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

프로토콜 분석기 e-watch 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

분석 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Home Works 집 컴퓨터에 리눅스를 설치할 것 기능과 명령어 숙달 프로그래밍 Network 설정 연습문제 풀이 RedHat의 최신버전인 Fedora를 설치. 기능과 명령어 숙달 GUI화면에서 각 메뉴의 기능 Console모드에서의 명령어 프로그래밍 간단한 c 프로그램을 vi로 작성하고 compile printf(“hello world\n”); Network 설정 ifconfig route 연습문제 풀이 연습문제 2개 작성 및 풀이 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

Fedora 11 on USB Stick/Externet HDD Get Fedora 11 Desktop Edition ISO File On Windows XP liveusb-creator-3.7.1.zip from https://fedorahosted.org/liveusb-creator/ Run 만약 Target Device가 선택되지 않으면… 강제로 다음과같이 liveusb-creator --force F: 만약 Target Device에 F:^v$3 등 이상한 글자가 나오면, 해당 드라이버의 이름을 한글에서 영문으로 바꿀 것. 컴퓨터 BIOS의 부팅순서를 USB를 우선으로 선택 만약 외장형 HDD(usb연결)의 경우, HDD의 부팅순서를 외장형 HDD가 우선하도록 설정. Booting 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

설치된 Fedora에서… gcc컴파일러, telent server, quagga 설치 yum intall gcc yum install telnet-server telnet Yum quagga yum ethereal-gnome  GUI /메인창의 Internet부분에 wireshark로 설치됨. … 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

참고: 유용한 리눅스 정보 (1) 파일의 위치 l   데몬들의 설정화일(script) 위치 : /etc/rc.d/init.d, /etc/xinetd l   네트워크 서비스 설정 파일의 위치 : /etc/services l   네트워크 드라이버 모듈의 위치 : /lib/modules/리눅스버전/kernel/drivers/net (2) telnet 데몬의 설정화일 내용   #cd /etc/xinetd.d #ls #vi telnet # service telnet { disable = no ; 텔넷 서비스가 가능하도록 설정함. .. } 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

참고: 유용한 리눅스 명령어 (1) 일반 l 버전 확인 #uname –r l CD mount #mount /dev/cdrom /mnt/cdrom ; CD ROM장치를 /mnt/cdrom디렉토리로 마운트한다. #cd /mnt/cdrom/ #ls ; CD의 내용을 보여줌 l  Unmount : CD나 플로피를 제거할 경우 (반드시 /mnt/cdrom 디렉토리가 아닌 곳에서 실행해야 함.) #umount /mnt/cdrom l    압축해제 #tar xvf <압축화일명.tar> #tar zxvf <압축화일명.tar.gz> l                  socket programming compile cc main.c –lnsl // link with network service library   라우터와 라우팅 프로토콜 한국항공대학교 윤종호

계속.. (2) RPM(Redhat Package Management) 패키지 관리 rpm –qa ; 설치된 rpm 종류 나열   rpm –qa ; 설치된 rpm 종류 나열 rpm –e <rmp명> ; 제거 rpm –i ; 추가 rpm –U ; 갱신 (3) 모듈관리 l   적재된 모듈 확인 : lsmod l   적재된 모듈 제거 : rmmod <모듈 이름> l   모듈의 적재 : modprobe <모듈 이름> 라우터와 라우팅 프로토콜 한국항공대학교 윤종호

계속… l DNS설정 #vi /etc/resolv.conf … nameserver 200.0.1.x l 설정내용의 적용 (4) Network관련 l   일반설정 : /etc/sysconfig/network파일을 열어, 다음 사항을 편집함.   NETWORKING=yes HOSTNAME=hanul DOMAINNAME=ewatch.ac.kr FORWARD_IPV4=no //라우터로 설정할 경우에는 반드시 yes로 설정해야 함. GATEWAYDEV=eth1 GATEWAY=200.0.1.1 //자신의 기본 라우터 l       카드 설정 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 … DEVICE=eth0 ONBOOT=yes BOOTPROTO=none IPADDR=200.0.1.2 NETMASK=255.255.255.0 NETWORK=200.0.1.0 BROADCAST=200.0.1.255 l      host name 설정 #vi /etc/HOSTNAME HOSTNAME=hanul.ewatch.ac.kr          l    DNS설정 #vi /etc/resolv.conf … nameserver 200.0.1.x l    설정내용의 적용 #/etc/rc.d/init.d/network restart Shutting down interface eth0: [OK] Setting network parameters: [OK] Bring up interface lo: : [OK] Bring up interface eth0 : [OK] l      xinetd의 시동 및 중지 #/etc/rc.d/init.d/xinetd [start stop restart] l      인터페이스 설정 및 활성화 #ifconfig <인터페이스 명> <IP주소> netmask 255.255.255.0 [up, down] l     기본 라우터 설정 #route add default gw <라우터 주소> l     경로확인 #route 라우터와 라우팅 프로토콜 한국항공대학교 윤종호