<4D F736F F D2031C0E52DB3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D6C0C720C0CCC7D8>

Similar documents
Microsoft Word doc

TCP.IP.ppt

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft PowerPoint - 06-IPAddress [호환 모드]

Subnet Address Internet Network G Network Network class B networ

Microsoft PowerPoint - tem_5

Microsoft PowerPoint _TCP_IP

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

bn2019_2

2009년 상반기 사업계획

Network seminar.key

OSI 참조 모델과 TCP/IP

SMB_ICMP_UDP(huichang).PDF

슬라이드 제목 없음

슬라이드 1

6강.hwp

Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode]

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

슬라이드 제목 없음

Microsoft Word - NAT_1_.doc

제10장 트래핀스포트 및 응용 계층

The Pocket Guide to TCP/IP Sockets: C Version

소프트웨어 융합 개론

자바-11장N'1-502

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

IP 주소란? 네트워크상에존재하는컴퓨터들을구분하고, 서로를인식하기위해사용하는특수한번호. 32-bit 체계의 IPv4 와, 128-bit 체계의 IPv6 가있다. About IPv4 32-bit 의길이로이루어지는 IPv4 는 1 byte (= 8-bit) 씩 4 개로나누

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

제20회_해킹방지워크샵_(이재석)

운영체제실습_명령어

Microsoft Word - release note-VRRP_Korean.doc

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

네트워크통신연결방법 네트워크제품이통신을할때, 서로연결하는방법에대해설명합니다. FIRST EDITION

슬라이드 1

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

슬라이드 1

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

2009 학년도 2 학기통신프로토콜 Quiz 모음 ( 인터넷정보과 1 학년 C/G 반 ) 담당교수 : 권춘우 [Quiz #1] 통신기초와관련한다음물음에답하라. 1. 통신이라함은정보원 ( 송신자 / 수신자 ) 간정보를전송매체를통해전달하는것을의미한다. 그래서정보원 (sou

컴퓨터네트워크와인터넷 컴퓨터네트워크 Copyright by Tommy Kwon on August, 2010 Copyright by Tommy Kwon on August, 통신 정보전송시스템의구성과역할, 원리 l 원격지간에정보를잘전송하고처

PowerPoint 프레젠테이션

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

0. 들어가기 전

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

hd1300_k_v1r2_Final_.PDF

게시판 스팸 실시간 차단 시스템

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - Chap09_TCP와 UDP [호환 모드]

슬라이드 1

Microsoft PowerPoint - 04-UDP Programming.ppt

KISA-GD

슬라이드 1

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

<C4C4C0CF31352D CC5EBBDC5B8C12CC5EBBDC5C0E5BAF12CBFC0B7F9B0CBC3E22E687770>

1217 WebTrafMon II

untitled

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

2009년 상반기 사업계획

UDP Flooding Attack 공격과 방어

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

순위가높은메시지가먼저도착하도록한다. 서비스등급 : 데이터의요구에따라서비스등급을부여하여서비스한다. 보안성 : 엑세스제한과같은보안체제를구현한다. OSI(Open System Interconnection) 참조모델 1) 기본개념 다른시스템간의원활한통신을위해 ISO( 국제표준

SRC PLUS 제어기 MANUAL

<4D F736F F F696E74202D20BBE7BABB202D DBED7BCBCBDBAC1A6BEEE2CC7C1B7CEC5E4C4DD2C4F B0E8C3FE2E707074>

정보통신공학특론 (과목번호 : 0634)

Microsoft PowerPoint - ch02_인터넷 이해와 활용.ppt

Windows 8에서 BioStar 1 설치하기

Chapter 18 - William Stallings, Data and Computer Communications, 8/e

PowerPoint Presentation

Windows Server 2012

Secure Programming Lecture1 : Introduction

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

Chapter11OSPF

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D>

Switching

[ tcpdump 패킷캡처프로그램 ] tcpdump란? tcpdump 버전확인 tcpdump 플래그 (flags) tcpdump 사용법 tcpdump의사용예제 telnet을활용해 root와 passwd 암호알아내기 [01] tcpdump란? tcpdump는 Lawren

일반적인 네트워크의 구성은 다음과 같다

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

RHEV 2.2 인증서 만료 확인 및 갱신

*****

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

인터넷프로토콜중간고사 학번 이름 1. ipconfig/all 을수행하면다수의인터페이스에 X.X 인주소가붙어있는 것을볼수있다. 이주소는어떤특수주소인가? [3 점 ] 2. Option 이없는 IP 헤더를그려라. 각필드의명칭을정확히기입하라.

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

ARMBOOT 1

Microsoft PowerPoint - ch13.ppt

슬라이드 1

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

untitled

PTLINE Template

chapter4

Microsoft Word - access-list.doc

The Pocket Guide to TCP/IP Sockets: C Version

놀이동산미아찾기시스템

PowerPoint 프레젠테이션

IPv6Q 현배경 > 인터넷의급속한성장 -> IP 주소의고갈 개인휴대통신장치의보급 network TV, VOD 단말기등의인터넷연결 가정용품제어장치의인터넷연결 > 새로운 IP 로의이행문제 IPv4 호스트와의호환성문제를고려하여야합 ~ IPv4 의취약점보완 QoS 지원 인증

Transcription:

1. 네트워크프로그래밍의이해 1.1 네트워크프로그래밍분류 응용계층 TCP/IP 네트워크디바이스 응용계층프로그래밍소켓프로그래밍디바이스드라이버프로그래밍 LAN 응용계층프로그래밍 - 응용 ( 작업 ) 단위의동작을네트워크를통해수행 - 네트워크하위계층의동작을구체적으로제어불가능 통신효율저하 - 웹 (Web) 프로그래밍 (HTML 문서작성 ) 트랜스포트계층프로그램 - 통신종단간의연결을관리하고패킷단위의동작을제어 - Socket API 를이용하는프로그램 Socket API 종류 : UNIX BSD socket(1982), Winsock (1992), - 1 -

TLI(Transport Layer Interface, 1986) 디바이스드라이버계층프로그램 - 링크계층이나하드웨어를구동하여프레임단위의데이터송수신제어 - LAN 에서 MAC(Medium Access Control) 프레임제어 API 의예 FTP 사의패킷드라이버 (Packet Driver) Microsoft 사의 NDIS(Network Driver Interface Specification) Novell 사의 ODI(Open Data Interface) 등 네트워크프로그래밍의계층별분류와특징 계층 응용계층트랜스포트계층디바이스드라이버계층 종류 http, ftp, mail, rsh, rcp, RPC Socket, WinSock, TLI Packet Driver, NDIS, ODI 특징 - 이미작성된유틸리티나응용프로그램을활용 - 효율은떨어질수있으나프로그램작성, 변경, 운영이쉬움 - 패킷단위의데이터송수신을처리함 - 인터넷 (TCP/IP) 프로그램에서가장많이사용됨 - 소켓 API 가운영체제마다유사하여프로그램 호환성이좋음 - LAN 에서 MAC 프레임단위의전송을처리함 - 다양한 MAC 프로토콜에서사용할수있음 - 흐름제어, 오류제어등은사용자가작성해야함 - 2 -

1.2 인터넷프로토콜 개요 - ARPANET 최초의패킷데이터통신망 미국의국방성에서 1968 년에구축 - TCP/IP 프로토콜 여러서브네트워크 (LAN, 패킷교환망, 위성망등 ) 의호스트간상호연결을위한트랜스포트계층프로토콜부재 ARPANET 에서임의의서브네트워크에연결된장비들간의라우팅을위한 TCP/IP 프로토콜제정 인터넷프로토콜의구성 - OSI 7 Layer 프로토콜과의비교 인터넷프로토콜 인터넷프로토콜은네트워크액세스계층, 인터넷계층, 트랜스 - 3 -

포트계층, 응용계층의 4 개의계층으로구성 - 인터넷프로토콜구성 주된요소는 TCP 와 IP 지만, UDP(User Datagram Protocol), ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol), RARP(Reverse ARP) 등관련된프로토콜을통칭 WWW(World Wide Web) 서비스가폭발적으로확산 TCP/IP 는컴퓨터통신망의실질적인표준 - 세부구성 네트워크액세스계층 ~ IP 패킷의물리적인전달을담당 (dial-up 회선, LAN, X.25 패킷망등 ) 인터넷계층 ~ 비연결형서비스즉, 데이터그램방식으로호스 - 4 -

트사이에 IP 패킷을전달하는기능과라우팅등을수행 트랜스포트계층 ~ 호스트사이의종점간연결을제공하고종 점간의데이터전달을처리 TCP 는신뢰성있는, 즉재전송에의한오류제어와흐름제어를하는스트림 (stream) 형태의연결형서비스를제공 UDP 는재전송이나흐름제어가없는비연결형서비스를제공 응용계층 ~ TCP/IP 프로토콜을이용하는응용서비스 (TCP 또는 UDP 가지원하는응용으로각각구분 ) 트랜스포트프로토콜 TCP UDP TCP, UDP ( 모두지원 ) 응용계층서비스 - File Transfer Protocol(FTP) - TELNET - Simple Mail Transfer Protocol (SMTP) - Hyper Text Transport Protocol (HTTP) - Network File System(NFS) - Trivial FTP(TFTP) - Echo - Daytime - Time 네트워크엑세스계층 - 지원하는서브네트워크 dial-up 회선, LAN, X.25 패킷망, 위선통신회선등모든종류의서브네트워크 - 이더넷 Xerox 사에서처음제안하였으며, Xerox, Intel, DEC 3 사가 1978 년공동표준으로채택 CSMA/CD(Carrier Sense Multiple Access/Collision Detection) MAC 프로토콜을사용 - 5 -

프레임구조 Preamble(8 바이트 ) 은수신측에서동기를맞추기위한준비신호이며 1 과 0 의반복. 8 번째바이트는 10101011 DA 와 SA 는수신지및송신지의 MAC 주소 ( 각 6 바이트 ) Type 필드는상위계층의프로토콜을구분 ( 예 : 0x0800 이면 IP 프로토콜이고, 0x0806 이면 ARP 프로토콜 ) Info 는상위계층의사용자정보 ( 예 : IP 패킷 ). IEEE 802.3 MAC 표준 ~ 이더넷을약간변형하여만든표준 Type 대신 Info 의크기를나타내는 Length 필드사용 IEEE 802.3 에서는상위계층에전달할프로토콜을구분하기위하여 Info 필드에실려있는 LLC(Logical Link Control) 프레임헤더중일부필드를사용 순수사용자정보크기비교 : 이더넷은최대 1500 바이트, IEEE 802.3 은 1492 바이트 - 6 -

인터넷계층 - 기능 인터넷프로토콜 (IP: Internet Protocol) 을처리 서브네트워크네트워크에무관하게데이터그램패킷을임의의호스트사이에주고받기위한프로토콜 OSI 의네트워크계층에해당하는기능을수행 - 패킷교환표준인 X.25 프로토콜과의비교 X.25 는연결형서비스 ( 가상회선 ) 와비연결형서비스 ( 데이터그램 ) 를모두지원하지만 IP 는비연결형서비스만지원 모든 IP 패킷은송신지와수신지의주소로서각각 32 비트의 IP 주소를항상포함 ~ 전송효율이떨어짐 X.25 는 12 비트의가상회선번호를사용 - IP 주소 (IP address) 인터넷 (Internet) 은 "IP 프로토콜을사용하는모든장비 ( 라우터및호스트 ) 들의집합 " dotted decimal 표현방식 ( 예 : 203.241.228.13) IP 주소는네트워크를구분하기위한 netid 필드와한네트워크내에서호스트를구분하기위한 hostid 필드두부분으로구성 netid 는 NIC(Internet Network Information Center) 또는국내 - 7 -

대행기관 ( 한국전산원등 ) 에서발급 클래스 A 주소 첫번째바이트의첫비트가 0 첫바이트의나머지 7 비트가 netid 이고, 뒤의세바이트가 hostid 한네트워크가약 2 24 대의호스트를수용 클래스 B 주소 첫번째바이트의처음두비트가 10 첫번째바이트의나머지 6 비트와두번째바이트가 netid 이고, 뒤의두바이트가 hostid 한네트워크가약 2 16 대의호스트를수용 클래스 C 주소 첫번째바이트의처음세비트가 110 세번째바이트까지가 netid 이고마지막한바이트가 hostid 한네트워크가 254 대까지수용 클래스 D 주소 첫번째바이트의처음네비트가 1110 방송 ( 멀티캐스트 ) 주소로사용 - IP 주소체계의문제점 IP 주소가 netid 와 hostid 두부분으로구성 컴퓨터가다른네트워크로이동하면 netid 부분이새로접속된네트워크의 netid 로달라지게되므로 IP 주소가달라지게됨 노트북컴퓨터나휴대형정보기기등에서인터넷접속시걸림돌 ~ 모빌인터넷프로토콜 (Mobile IP) 제안 (Ipv6 에포함 ) - 서브네팅 (subnetting) 네트워크주소 ( 클래스 A, B 또는 C) 를다시여러개의작은네트워크로나누어사용하는방안 큰규모의네트워크를작은규모의 LAN 으로나누어주소 - 8 -

관리와라우팅을편하게함 Subnet Mask ~ 4 바이트 IP 주소중에 netid 부분을구분하기위한 mask 클래스 A 망을위한디폴트 subnet mask 는 255.0.0.0 이고클래스 B 의망은 255.255.0.0, 클래스 C 의망은 255.255.255.0 서브네팅의예 클래스 C 주소에서 hostid 로 8 비트가아닌 6 비트만사용하고 netid 로 24 비트가아닌 26 비트를사용하는경우 subnet mask 는 255.255.255.192 가됨 만약 3 비트를서브네트워크를만드는데사용하였다면모두 8 개의서브네트주소를사용가능 배정가능한총 IP 주소수 호스트주소 (hostid) 중에서모두 1 인것은방송용, 모두 0 인것은자신의주소 (loopback) 용으로지정 ~ 호스트에배정불가 구분 서브네팅주소로사용한비트수 ( 나누지않음 ) 2 비트사용 3 비트사용 Subnet mask 255.255.255.0 255.255.255.192 255.255.255.224 서브네트워크수 1 4 8 각서브네트워크네트워크내 256-2 = 254 64-2 = 62 32-2 = 30 의호스트수 배정가능한총 IP 254 4 62 = 248 8 30 = 240-9 -

주소수 - IP 패킷구조 필드명 Ver (Version) 4 IP 버전 IHL 4 4 바이트 Service Type 8 서비스 Total Length 16 IP 패킷 Identification 16 데이터그램 Flags 3 첫번째 Fragment Offset 13 전체 TTL (Time to Live) Protocol 8 상위 Header Checksum 16 헤더 Source IP Address 32 송신지 Destination IP Address IP Options 길이기능버전값을표시 ( 현재는 4 임 ) 바이트단위로헤더길이를표시 ( 최소값은 5) 서비스클래스지정 ( 보통 0 으로지정 ) 패킷크기 ( 바이트단위이며최대값은 65535) 데이터그램구분을위한일련번호첫번째비트 : More 비트 (0~ 마지막, 1~ 연속되는패킷 ) 두번째비트 : 세분화금지플래그 (0: 세분화가능 ) 세번째비트 : 미사용전체메시지중이패킷의위치를표시 (8 바이트단위 ) 8 고아패킷방지를위해 hop counter 값을사용. 노드를지나갈때마다 TTL 값이 1 씩감소하고 0 이되는노드는패킷을제거상위계층프로토콜을지정 (1~ICMP, 6~TCP, 17~UDP) 헤더부분의오류검출송신지 IP 주소 32 수신지 IP 주소 가변옵션선택 ( 보통미사용 ) - 10 -

Padding 가변 32 비트단위로패킷의길이를맞춤 ( 보통미사용 ) - 인터넷계층의동작 데이터전송 상위트랜스포트계층으로부터받은데이터에 IP 패킷헤더를붙여 IP 패킷을만들고이를전송 IP 패킷분할 ~ 상위계층으로부터받은데이터의크기가 IP 패킷의최대데이터영역크기보다큰경우각 IP 패킷의 More 비트를 1 로세트하여이들이논리적으로연결된것임을표시하고마지막패킷의 More 비트는 0 ICMP(Internet Control Message Protocol) 호스트또는라우터사이에오류정보, 제어메시지를전달하는데사용주로 IP 가이용하지만 ping 이나 traceroute 같은응용프로그램이직접사용하는경우있음 ARP(Address Resolution Protocol) IP 주소를가지고수신호스트의 MAC 주소를알아내기위한절차 ( 프로토콜 ) ~ IP 패킷을물리적으로전달하기위하여는먼저수신호스트의 MAC 주소를알아야하기때문 ARP 의동작순서 1 예를들어, telnet cc.kangwon.ac.kr 라는명령을내리면, 응용프로그램 telnet 은먼저 cc.kangwon.ac.kr 컴퓨터의 IP 주소가 192.203.144.11 인것을찾는다. 2 telnet 은위에서알아낸 IP 주소를 TCP 에게알려주고이곳으로접속을하도록요구한다. 3 IP 계층은목적지의 netid 인 kangwon.ac.kr 이자신의 netid 와같은지를비교하여목적지가같은 LAN 내에있으면 LAN 을통하여바로 telnet 서비스요구를전송하도록한다. 이때목적지의 MAC 주소를알아내기위하여 ARP 를구동한다 4 ARP 에서는목적지장비의 MAC 주소를찾기위하여 ARP - 11 -

request 패킷을 LAN 내의모든장비에게방송한다. 5 목적지컴퓨터 (cc.kangwon.ac.kr) 만 ARP request 에응답을하며이때자신의 MAC 주소를알려온다. 6 이 MAC 주소를사용하여 telnet 서비스에필요한데이터들을목적지 (cc) 로전송한다. 동일한목적지호스트에 IP 패킷을연속하여보낼때매번 ARP 를사용하면 ARP 를처리하기위한패킷들을자주전송하게되어대역이용률이떨어짐 ~ ARP 로얻은최근의정보를캐시에기록해두는것이효율적 Proxy ARP ~ 멀리떨어져있는목적지호스트를대신하여 ARP 에응답하는중간의라우터. 동작시간을단축 - 12 -

RARP ARP 의역과정, 즉 48 비트 MAC 주소로부터그장비의 32 비트 IP 주소를알아내는과정을 RARP(Reverse ARP) 라한다. - SLIP(Serial Line IP) 과 PPP(Point-to-Point Protocol) dial-up 회선이나전용회선과같은직렬 (Serial) 회선을통한 IP 패킷전송기술 SLIP 비동기 (Asynchronous) 회선을통한 IP 패킷전송기술로개발 (1988 년 ) 한바이트씩데이터를분할하여전송하고수신측에서는이를 IP 패킷으로재구성 IP 데이터그램의시작과끝을표시하기위해 SLIP END(0xC0) 문자를사용 IP 패킷내에우연히 SLIP END 와같은비트패턴이발생하는경우데이터가중간에서끊어지는오동작이발생 ~ 해결책 : SLIP ESC 문자 0xDB 를사용하여 IP 패킷내에서 0xC0 문자가발생하면이를 0xDBDC 로대치하여전송 IP 패킷내에 SLIP ESC 문자 0xDB 가나타날경우에는이를 0xDBDD 로바꾸어전송 SLIP 의단점 1 상대방의 IP 주소를미리알아야함 2 이더넷과달리 Type 필드를제공하지않음 ~ IP 패킷을전송하는것이외의다른프로토콜을지원하는것이불가능 3 에러검출또는회복기능을제공하지않음 - 13 -

PPP(Point-to-Point) 프로토콜 SLIP 의단점을보완하여 IP 패킷전송뿐만아니라여러프로토콜을하나의링크를통하여지원하도록개발 (1992 년 ) 비동기전송과동기전송 (Byte-oriented 또는 Bit-oriented) 회선에서모두사용매체의전송속도에무관하게동작 ~ 저속의 dial-up 회선뿐만아니라고속전용회선 (56kbps 45Mbps) 에서도사용가능이더넷과같은 LAN 을중간에경유하는종점간의일대일접속프로토콜로도사용 HDLC(High-level Data Link Control) 와유사하나헤더의크기를줄이고데이터를압축함으로써전송효율이높음 HDLC 에서와같이 0x7E 를프레임의시작과끝을표시하는플래그로사용 PPP 프레임의 Address 와 Control 은각각 0xFF 와 0x03 으로고정되어있고, Protocol 필드는프레임이전달하는정보의종류를구분하는데사용 ( 예 : 0x0021 이면 IP 패킷, 0x002B 이면 IPX 패킷 ) - 14 -

트랜스포트계층 - 연결형과비연결형서비스 연결형서비스 상대방과연결을설정하고이연결을이용해데이터를주고받은후연결을해제하는세단계의절차를거치는서비스 X.25 의가상회선패킷교환서비스, 전화와같은회선교환서비스, TCP 등이해당연속된흐름 (stream) 의데이터송수신이가능 많은양의데이터를전송할때나신뢰성있는연결이필요할때, 또는데이터의순서보장이필요할때사용 비연결형서비스 연결을설정하고해제하는절차없이바로데이터를주고받는방식으로데이터그램서비스라고도함데이터그램의손실확인이나순서유지를보장해주지않기때문에 ( 상위의 ) 응용프로그램에서필요하면이를처리프로토콜헤더처리에필요한오버헤드 ( 연결설정지연등 ) 가연결형서비스보다적어간단한패킷을주고받는경우에유리이더넷등의 LAN 프로토콜, X.25 의데이터그램서비스, IP 패킷전송, UDP 등이해당 - 트랜스포트프로토콜 연결형 (Connection Oriented) 서비스를제공하는 TCP 프로토 콜과비연결형 (Connectionless) 서비스를제공하는 UDP 프로 토콜 TCP 프로토콜 연결형서비스로서종점간의연결개설, 오류발생시데이터재전송, 패킷전달순서확인, 중복패킷제거, 흐름제어, 네트워크오동작시보고등을제공 - 15 -

안정적인데이터전달을필요로하는응용프로그램에서사용 UDP 프로토콜 비연결형서비스로서단순히패킷을하나씩목적지주소로전송. UDP 를안정적으로사용하려면응용프로그램에서데이터의분실, 흐름제어, 오류등을처리하여야함 UDP 프로토콜을사용하는경우 1 응용프로그램이 UDP 만을사용하도록작성되어있는경우 2 패킷을방송 (broadcast) 또는멀티캐스트해야하는경우 3 TCP 처리오버헤드때문에 TCP 로처리할시간이없는경우 ( 실시간서비스등 ) - TCP TCP 는신뢰성있는종점간데이터전달을책임 스트림 (Stream) 형의서비스를제공 TCP 의프로토콜데이터단위 (Protocol Data Unit: PDU) 구조 - 16 -

TCP 헤더의각필드의기능 필드명 길이 ( 비트 ) 기능 Source Port 16 송신측의응용프로세스를구분하는포트번호 Destination Port 16 수신측의응용프로세스를구분하는포트번호 Sequence Number 32 송신된데이터의순서번호 ( 바이트단위 ) Ack Number 32 수신된데이터바이트수 + 1 ( 아래의 ACK=1 일때의미가있음 ) Header Length 4 헤더크기 (4 바이트단위 ) 로보통 5 임 Code SYN Bits 1 연결요청시사용되며 Sequence Number 가초기값임을알림 ACK 1 Ack 용데이터임을표시 ( 이때 Ack Number 값이유효 ) URG 1 긴급데이터임을표시 ( 이때 Urgent Pointer 값이유효 ) FIN 1 접속을종료하는데사용 RST 1 접속을리셋하는데사용 Window 16 흐름제어용윈도우크기 ( 바이트단위 ) Checksum 16 TCP PDU 전체와 IP 계층의헤더중후반부 12 바이트 ( 송수신지 IP 주소등 ) 에대한오류검출코드 Urgent Pointer 16 긴급데이터가들어있는위치를표시 TCP 에서는종점장비간의연결설정을위하여 Three-way Handshake 를사용 ~ 안정적인연결을확인하기위함 Two-way Handshake : 연결접속요구에대하여상대방이응답을하면연결이설정됨 (X.25 패킷교환망의네트워크계층에서이 용 ) Three-way Handshake : 연결접속요구에대하여상대방도이를확인하면서다시연결접속요구를하고이에대해처음의연결요구측에서 ACK 를보내야연결이설정됨 TCP 는임의의길이의큰파일전송가능 (UDP 에서는한번 에전송할데이터가 UDP 최대데이터그램크기보다크면뒷 - 17 -

부분이전송않됨 ) TCP 에서는흐름제어를패킷단위가아니라데이터분량 ( 바이 트단위 ) 으로수행 송신측은상대방이최근에보내온 TCP 헤더의 Window 값을읽어바이트단위인 Window 크기내에서만 TCP 데이터를전송수신측은자신의데이터처리능력과네트워크사정에따라 Window 값을바꿈으로써흐름제어가능 - UDP UDP 프로토콜데이터단위 송신지및목적지의포트번호 (16 비트 ), 데이터그램길이 (16 비트 ), Checksum, 그리고사용자데이터로구성 UDP 의특성 TCP 보다적은오버헤드신뢰할수있는종점간데이터송수신을보장하지않으므로파일전송, 메일서비스등에는부적합 DNS(Domain Name System) 서비스나 Time 서비스와같이한패킷의송수신으로서비스가이루어지는경우에많이사용 LAN 과같이전송오류가거의없고패킷의전달순서가바뀌지않는환경에서는 TCP 보다 UDP 가유리 LAN 에서제공되는 NFS(Network File System) 는 UDP 를사용 - 18 -

네임서비스 - Name Service? Domain Name ~ 인터넷에연결된호스트의영문이름 Name Service ~ Domain Name 에관한서비스 # mail mthwang@cs.inje.ac.kr 이라는명령문을입력하면? 호스트에서는먼저목적지호스트 cs.inje.ac.kr 의 IP 주소 203.241.228.11 을찾아내야하는데이과정 ( 또는이의역과정 ) 을 Name Service 라고함 - DNS(Domain Name System) 인터넷주소를편리하게관리하기위하여네트워크단위또는 논리적인 컴퓨터 그룹 (Hierarchical) 시켜체계화 단위로 도메인 아래인터넷주소에서도메인이름은 inje.ac.kr 영문인터넷주소 : mthwang@cs.inje.ac.kr mthwang : 호스트 cs 에있는사용자계정이름 cs : 호스트이름 inje: 인제대학교를나타내는도메인이름 ac : 교육망을나타내는도메인이름 kr : 한국을나타내는도메인이름 네임을 계층화 - Hosts 테이블 Name Service 를제공하는가장기본적인방법 ~ hosts 테이블에각호스트의도메인네임과 IP 주소의관계를기록 - 19 -

# /etc/hosts # Internet host table # # # IP Address Domain Name Aliances 127.0.0.1 localhost 203.252.65.3 vcn loghost 192.203.144.11 cc.kangwon.ac.kr cc 192.203.144.15 bbs.kangwon.ac.kr bbs : 127.0.0.1 은 loopback 주소즉, 목적지가같은컴퓨터내에있을때사용하는주소 loghost 란현재사용중인컴퓨터를말함 hosts 테이블을사용하여네임서비스를제공하는방법은관리할주소의규모가작을때는가능하나통신가능한모든도메인이름을 hosts 테이블에수용하기란불가능 ~ DNS 서버이용 DNS 서버가고장났을때중요한호스트들에접속하기위해서, 그리고자주접속되는호스트들의 IP 주소를빨리찾기위하여 DNS 서버와병행하여 hosts 테이블을사용하는것도필요함 - DNS 서버 Hosts 테이블의단점 DNS 서버 이름의중복, 테이블크기의증가등여러가지문제점이발생 DNS 서비스를전담하여제공하는서버하나의 DNS 서버가전세계에있는모든호스트의정보를가지고있기란불가능하므로 DNS 서버는계층적으로서비스제공 (hosts 테이블에없는 Name 을처리하려면이를디폴트로문의할 DNS 서버를지정 디폴트 DNS 서버에서처리되지못하는 Name 은한단계상위의 Domani Name 들을처리할수있는다른 DNS 서버에게문의 ) - 20 -

- 서비스파일 포트번호 UNIX 서버에서는여러개의프로세스가동시에수행되고있을수있으므로 TCP/IP 는이들을구별하기위해포트번호를사용 IP 프로토콜이네트워크로부터수신한패킷을전달할상위응용프로세스를구분하기위하여포트번호를사용포트번호에는미리정해진것들도있고응용프로그램에서임의로정해서사용하는것도있음 Well-Known 포트번호 telnet 이나 ftp 같은널리쓰이는응용프로그램에는포트번호가미리지정되어있으며이런것을 well-known 포트라고함 Well-Known 포트번호는 1024 번이하가배정 ( 사용자응용프로그램에서임의로포트를정의하여사용하는경우에는 1025 번이상의포트번호를사용 ) 서비스파일 TCP/IP 를지원하는어떤호스트의 Well-Known 포트번호가정의되어있는파일보통 UNIX 호스트의서비스파일은 /etc/services 임 # # Network services, Internet style # # 서비스명포트번호 / 프로토콜별명 # echo 7/tcp echo 7/udp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver : : - 21 -

1.3 클라이언트 - 서버통신모델 개요 - 클라이언트 - 서버모델 대부분의컴퓨터네트워크프로그램은클라이언트 - 서버모델로구현 서비스를제공하는장비를서버라하고, 서비스를받는장비를클라이언트라함 컴퓨터네트워크의역할은네트워크워크에접속된임의의클라이언트가임의의서버와연결될수있도록하는것 클라이언트와서버의동작 클라이언트는서버에접속을시도하고그연결결과를기다린다든가 ( 연결형서비스의경우 ) 어떤서비스를요구하고응답을기다림 클라이언트의요구 (request) 에대하여서버는응답 (response) 을보내는방식으로동작클라이언트가서버프로그램을통하여서버의자원을임의로액세스하지못하도록주의하여서버프로그램을구현 ( 서버의구현이클라이언트보다복잡함 ) - 22 -

클라이언트의 ID 검사 (Authentication), 서버정보의유출및변경등을확인 (Security), 여러클라이언트에게서비스를동시에제공하는기능 (Concurrency) 등이필요 서버의구현기술 - 서버구현기술종류 연결형과비연결형서버 stateless 와 stateful 서버 iterative 와 concurrent 서버 - 연결형과비연결형서버 클라이언트와서버의통신에서사용할트랜스포트계층프로토 콜의종류 (TCP 또는 UDP) 에따라구분 연결형서버 스트림형트랜스포트프로토콜 (TCP) 을사용하며데이터의안정적인전달 ( 전송순서유지, 재전송제공등 ) 을보장하는서버연결형서버의단점은모든클라이언트와의접속마다소켓을각각개설하고있어야한다는점 ( 소켓을많이개설하면시스템자원 ( 메모리 ) 을많이사용 ) 비연결형서버 비연결형트랜스포트프로토콜 (UDP) 을사용하는서버로네트워크가안정적인데이터의전달을책임지지못하기때문에응용프로그램이필요하면이를보상 비연결형서버의장점은하나의소켓을통하여다수의클라이언트에게서비스를제공 ( 시스템자원자원을절약 ) 방송형또는멀티캐스팅을필요로하는응용프로그램에서는비연결형서버를이용하는것이편리 - 23 -

연결형과비연결형서버의특징비교 서버의종류연결형서버비연결형서버 - TCP 프로토콜사용 특징 - 데이터의안정적인전달을보장함. - 각클라이언트마다연결을설정하여야함. - 클라이언트수가늘면서버에부담이클수있음. - UDP 프로토콜사용 - 메시지를한번만보내면되는간단한서비스에적합 - 클라이언트마다연결을설정할필요가없으므로서버의부담이적음 ( 메모리사용등 ). - 방송형, 멀티캐스팅형서비스에적합 - Stateful 과 Stateless 서버 Stateful 서버 서버가클라이언트와의통신상태 (State) 를계속추적하며이상태정보를서비스제공에이용하는서버 상태란과거의동작 ( 데이터송수신및처리 ) 결과에해당되며, 서버의현재상태에따라서클라이언트로부터의요구 (Request) 에대해취하는응답 (Response) 이달라질수있음 상태정보를사용하면현재의상태에따라약속된명령에대하여신속히응답할수있게되며, 클라이언트와주고받을메시지의크기를줄일수있음 현재의상태정보가잘못되어있거나 Request 에서비트오류가발생하면오동작을할가능성이높음 ( 네트워크가안정적일경우에만 Stateful 서버를사용하는것이유리 ) 상태정보는과거의정보이므로클라이언트가이전에보낸메시지에서오류가발생했으면틀린상태로가있을수있음 네트워크또는서버가 Reset 되었을때모든상태정보도 Reset 되어야하는단점 - 24 -

Stateless 서버 통신의동작상태를정의하지않고항상클라이언트로부터의독립적인 Request 에의해서비스를제공하는서버틀린상태정보를사용할가능성을없앰으로써서버가안정적으로동작클라이언트가 Stateless 서버로보내는 Request 는서버가동작하기에필요한모든정보를가지고있어야하므로메시지의길이가 Stateful 서버의경우보다길어짐 네트워크가불안정한경우에는 Stateless 서버가유리 ( 예 : 인터 넷 ) 오동작을최소화하는범위에서상태정보를적절히이용하는프로그래밍기술이필요 - Iterative 와 Concurrent 서버 Iterative 서버 클라이언트의서비스요구를순서대로처리해주는서버클라이언트로부터의각 request 를충분히짧은시간동안에처리할수있어다른클라이언트들이기다리는시간이거의없거나별로문제가되지않는경우에사용 Iterative 서버는프로그램구현이 Concurrent 서버보다비교적간단함 Concurrent 서버 여러클라이언트가요구하는서비스를동시에 (Concurrently) 제공할수있는서버 Concurrent 서버는동시에여러클라이언트들에게서비스를제공하기위하여새로운클라이언트가접속될때마다이클라이언트가요구하는서비스를처리할프로세스를계속생성 다수의 ( 예를들면수백개 ) 클라이언트가접속될수있는서비스에서는사용불가능 - 25 -

Apparent Concurrent 서버 ~ 새로운클라이언트들이새로접속되어도이를처리할프로세스를계속생성하지않고, 마치운영체제가여러작업을스케줄링하듯이하나의프로세스가모든서비스를동시에처리하는방법으로서널리사용됨 Iterative 와 Concurrent 서버의특징비교 서버의종류 Iterative 서버 Concurrent 서버 특징 - 하나의프로세스가모든클라이언트의서비스를처리 - 각서비스의처리시간이짧을때사용 - 서버프로그램구현이단순 - 서버프로그램구현이다소복잡 - 각클라이언트에대해프로세스가하나씩생성됨. - 각서비스처리시간이불규칙적이거나길때필요 - 26 -