제 4 장 인터넷 1
4.1 네트워크 구성 2
LAN(Local Area Network) LAN 근거리 통신망으로 집, 사무실, 학교 등의 건물과 같이 가까운 지역을 한데 묶는 컴퓨터 네트워크 Serial port connection 가장 단순한 LAN 이더넷 (Ethernet) 제록스 PARC 에서 개발된 LAN 구현 방법으로 현재 가장 일반적으로 사용 3 Ethernet cable Ethernet card serial connection
같은 종류의 네트워크를 두 개 이상 연결하는 장치 데이터 패킷의 목적지를 추출하여 그 경로에 따라 데이터 패킷을 다음 장치로 보내주는 장치 ( 국내공항 ) 공유기 혹은 스위치라고도 함 라우터 (router) 4 Ethernet cable Router
프로토콜 변환기를 포함하는 일종의 고용량 라우터로 서로 다른 종류 의 LAN 을 인터넷에 연결하는 컴퓨터나 장치 ( 국제공항 ) 무선 액세스 포인트 (wireless access point, WAP) 네트워크에서 와이파이, 블루투스 등을 이용하여 컴퓨터 / 프린터 등의 무선 장치들을 유선망에 연결할 수 있게 하는 장치 게이트웨이 (Gateway) 5 XNS(Xerox Network System) LAN Ethernet LAN AppleTalk LAN Ethernet LAN Gateway
4.2 인터넷 6
인터넷 (Internet) 인터넷 전세계 컴퓨터가 서로 연결되어 TCP/IP 프로토콜을 이용해 정보를 주고받는 공개 컴퓨터 통신망 프로토콜 서로 다른 기종의 컴퓨터 사이에 어떤 자료를, 어떤 방식으로, 언제 주고 언제 받을지 등을 정해놓은 규약 간단히 통신을 하기 위한 규약 ( 주소지정 방식 및 전송 방식 ) ( 예 ) TCP/IP TCP(Transport Control Protocl) IP(Internet Protocol) 7
TCP/IP 프로토콜 IP(Internet Protocol) 호스트의 주소지정과 패킷 분할 및 조립 기능에 대한 규약 인터넷 상의 각 컴퓨터는 자신의 IP 주소를 갖는다 IP 주소는 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용 하는 주소 TCP(Transport Control Protocol) IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다 ( 등기우편 ) UDP(User Datagram Protocol) IP 위에서 동작하는 프로토콜로, 단순한 전송 모델로 데이터의 전달을 전혀 보증하지 않는다 ( 일반우편 ) 8
9 연결형 시스템 호출 TCP/IP 연결형 소켓 (connection oriented protocol : TCP(Transport Control protocol)) 서버 (server) 클라이언트 (client) 클라이언트로부터 연결이 올 때까지 대기 프로세스에 요청 read( ) bind( ) listen( ) accept( ) socket( ) write( ) socket( ) connect( ) write( ) read( ) Data 응답 Data 요청 연결요청 연결승인 (ACK)
비연결형 소켓 (connectionless protocol : UDP(User Datagram Protocol)) blocks until data received from a client data(request) process request data(reply) 10 비연결형 소켓 시스템 호출 UDP/IP socket() write() bind() socket() bind() read() sendto() recvfrom() 클라이언트 (client) 서버 (server)
11 인터넷에서의 데이터 흐름 Transport 포장 벗겨 위로 전달 Application Network Link Network Link Network Link Application Transport Network Link 도착주소 (IP) 전달 세그먼트 분할 + 포장 + 도착주소 중간주소 붙여 포장 ( 도착주소 or 라우터 주소 ) 중간주소를 local network 주소로 변환 포장 벗겨 도착주소 확 인 후 아니면 다시 포장 + 새중간주소 ( 옆의 다른 라우터 주소 ) 메시지 재구성 포장 벗겨 도착주소 확인 맞으면 위로 전달 포장 벗겨 위로 전달
12 OSI 7 Layers & Internet protocol suite OSI 7 Layers Model Layer 7Application Layer 6Presentation Layer 5Session Layer 4Transport Layer 3Network Layer 2Data Link Layer 1Physical * OSI : Open System Interconnection Application TCPUDP IPv4, IPv6 Device Driver and Hardware Internet protocol suite sockets
13 인터넷 주소 IP Address vs. Symbolic Address vs. Physical Hardware Address IP Address 8 bit 4 fields = 32 bits ( 예 ) Class A, B, C, D Domain Name = Symbolic Address ( 예 ) csblade.incheon.ac.kr Symbolic Address com ( 회사 ), edu( 교육기관 ), gov( 정부 ), org( 비영리기관 ), mil( 군용 ), XX(2 자리 국가코드 ) Physical Hardware Address=MAC(media access control) Address =Ethernet hardware address(EHA) $ ifconfig -a (Linux) 또는 $ ipconfig -all (Windows) $ arp -a 6-byte(8 비트 ) 수치 콜론으로 분리된 16 진수 ( 예 ) 20:81:0a:10:c4:93 ( 처음 두 octet 은 제작사 코드 )
호스트명 (hostname) 인터넷에 연결된 컴퓨터에게 부여되는 고유한 이름 호스트명은 보통 사람이 읽고 이해할 수 있는 이름 도메인 이름 (domain name) 이라고도 한다 $ nslookup 호스트명 IP 주소 multi.incheon.ac.kr csmail.incheon.ac.kr eecs.berkeley.edu
DNS(Domain Name System) 호스트명을 IP 주소로 번역하는 서비스 DNS 는 마치 전화번호부와 같은 역할 nslookup(name server lookup) 명령어 도메인 이름 서버 (domain name server) 에 호스트명에 대해 질의 $ nslookup Server: Address: #53 Name: Address: 사용자 정보 $ finger 사용자 사용자가 언제 어디서 로그인 했는지 등 사용자에 대한 자세한 정보를 보여준다 $ w 사용자 현재 로그인한 사용자들이 실행하고 있는 작업의 내용을 보여 준다 $ last 로그인 했던 사용자들의 로그인, 로그아웃 시간 기록을 보여 준다 15
4.3 사용자 통신 16
메시지 보내기 : write wrtie 명령어를 이용하여 메시지를 보낼 수 있다. $ write 사용자명 [ 단말기명 ] $ write brain $ write brain pts7 wall(write all) 명령어 로그인된 모든 사용자에게 메시지를 보냄 시스템 셧다운과 같은 긴급한 메시지를 전달할 때 사용됨 $ wall [ 파일 ] 메시지 허용여부 $ mesg [y|n] 17
4.4 파일 전송 18
ftp 파일 전송 프로토콜 (File Transfer Protocol, FTP) 의 약자 FTP 서버와 클라이언트 사이의 파일 전송을 위한 서비스 주로 파일을 업로드 하거나 다운로드 하기 위하여 사용 ftp 혹은 sftp 명령어를 이용하여 파일 전송 $ ftp -n [ 호스트명 ] $ sftp -n [ 호스트명 ] 19
FTP(File Transfer Protocol) $ ftp -n [ 호스트명 ] $ ftp Connected to ( ). 220 localhost FTP server ready. Name ( :mysung): mysung 331 Password required for mysung. Password: 230 User mysung logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> $ sftp -n [ 호스트명 ] $ sftp Password: Connected to sftp> 파일 전송 프로토콜 FTP 서버와 클라이언트 사이의 파일 전송을 위한 서비스 주로 파일을 업로드 하거나 다운로드 하기 위하여 사용 ftp( 유닉스 ) 혹은 sftp( 리눅스 ; secure file transfer protocol) 명령어를 이용하여 파일 전송 20
ftp 내부 명령어 명령어의미 !command 로컬 호스트에서 명령어 실행 lcd path 로컬 호스트의 작업 디렉토리 변경 cd path 원격 호스트의 작업 디렉토리 변경 get 파일명해당 파일을 다운로드 mget 파일명 * 여러 파일들을 다운로드, 대표문자 사용 가능 put 파일명해당 파일을 업로드 mput 파일명 * 여러 파일들을 업로드, 대표문자 사용 가능 help 도움말 ls [path] 원격 호스트의 해당 디렉토리 리스트 pwd 원격 호스트에서 현재 작업 디렉트리 프린트 quit 종료 ascii 전송 모드를 아스키 모드 (ascii mode) 로 설정 ( 기본 설정이며 텍스트 파일 전송 시 사용 ) bin 전송 모드를 이진 모드 (binary mode) 로 설정 ( 실행 파일, 이진 파일 전송 시 사용 ) 21
숙제방 만들기 fedora.incheon.ac.kr ( ) /home/ul2012hwa /home/ul2012hwb /home/ul2012hwc 자신의 학번으로 숙제방 ( 디렉토리 ) 만들고 그 안에 복사 $ mkdir 자기학번 자신의 디렉토리 보호 $ chmod 700 directoryname 숙제 제출하기 e-version 1 fedora.incheon.ac.kr ( ) 숙제방 e-version 2 ( 안전을 위하여 ) cyber.incheon.ac.kr 숙제방 게시판 컴퓨터 사이의 파일 복사는 ftp 를 이용하세요 ! 22
4.5 원격 접속 23
telnet Unix/Linux/Windows 환경에서 원격 호스트에 연결하여, 자신의 컴퓨 터를 마치 원격 호스트의 터미널처럼 사용할 수 있다 지역 호스트 (local host), 원격 호스트 (remote host) $ telnet 호스트명 ( 혹은 IP 주소 ) 포트번호 $ telnet Trying Connected to Escape character is '^]'. Fedora release 15 (Lovelock) Kernel fc15.i686 on an i686 (2) login: mysung Password: Last login: Mon Sep 24 11:29:50 from Good Luck! $ telnet (echo) $ telnet (daytime) 24
ssh(secure shell) 원격 로그인 $ ssh 호스트명 $ ssh -l 사용자명 호스트명 $ ssh password: $ ssh –l stu password: 원격 명령 실행 $ ssh 호스트명 명령 $ ssh who 의 비밀번호 : mysung pts/2 Oct 4 11:30 ( ) 원격 로그인 혹은 원격 명령 실행을 위한 프로그램 보안을 위해 강력한 인증 및 암호화 기법 사용 기존의 rsh, rlogin, telnet 등을 대체하기 위해 설계됨 25
PuTTY PuTTY 을 사용하여 MS 윈도우즈에서도 ssh 를 사용 다운로드 한글 PuTTY telnet, ssh 등 사용 가능 26
ping 명령어 원격 컴퓨터의 네트워킹 상태를 확인 ( 호스트가 살아 있는지 알아보기 ) time(roundtrip time): ICMP(Internet Control Message Protocol) echo request 왕복시간Internet Control Message Protocol 14 byte MAC header 20 byte IP header 8 byte ICMP header 18 byte ICMP Data Variable 4 byte MAC trailer ttl(time to live = hop limit): 배달 오류 패킷을 버리는 시간 $ /bin/ping 호스트명 $ ping marvel.incheon.ac.kr PING marvel.incheon.ac.kr ( ) 56(84) bytes of data. 64 bytes from : icmp_req=1 ttl=127 time=0.211 ms 64 bytes from : icmp_req=2 ttl=127 time=0.198 ms 64 bytes from : icmp_req=3 ttl=127 time=0.202 ms ^C --- marvel.incheon.ac.kr ping statistics packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.198/0.203/0.211/0.017 ms $ ping eecs.mit.edu PING EECS.mit.edu ( ) 56(84) bytes of data. 64 bytes from EECS.MIT.EDU ( ): icmp_seq=0 ttl=239 time=229 ms 64 bytes from EECS.MIT.EDU ( ): icmp_seq=1 ttl=239 time=228 ms... 27
28 traceroute 명령어 /bin/traceroute : ICMP(Internet Control Message Protocol) echo request packets 이 목적지에 도착하기 위해 방문하는 게이트웨이 순서 추적Internet Control Message Protocolpackets $ traceroute mail.incheon.ac.kr ( ) traceroute to mail.incheon.ac.kr ( ), 30 hops max, 60 byte packet ( ) ms ms ms ( ) ms ms ms ( ) ms ms ms ( ) ms ms ms ( ) ms ms ms 6 mail.incheon.ac.kr ( ) ms ms ms … $ traceroute eecs.mit.edu ( ) $ traceroute eecs.berkeley.edu ( )
29 네트워크 디버깅 도구 /sbin/ifconfig ( 또는 $ ip -s link): 네트워크 인터페이스 구성 (enable/disable) $ ifconfig -a (cf.) Windows: ipconfig -all /sbin/arp : IP 주소를 하드웨어 주소 ( 이더네트 주소 ) 로 사상 검사와 관리 (address resolution protocol) $ arp -a ( 목록 ) $ arp -d hostname (su 가 삭제 ) $ arp -s hostname (su 가 등록 ) /bin/netstat : 네트워크 상태 알아보기 $ netstat –a ( 네트워크 연결상태 ) $ netstat –i ( 인터페이스 구성 정보 조사 ) $ netstat –r ( 경로배정표 조사 ) $ netstat –s ( 네트워크 프로토콜 운용 상의 통계 ) (cf.) /usr/bin/top : 시스템 상태 알아보기
4.6 월드 와이드 웹 30
월드 와이드 웹 (World Wide Web, WWW, W3) 월드 와이드 웹 (WWW) 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간 하이퍼텍스트 (hypertext) 문서 내의 어떤 위치에서 하이퍼링크를 통하여 연결된 문서나 미디어 에 쉽게 접근 하이퍼텍스트 작성 언어 : HTML(Hyper Text Markup Language) HTTP(Hyper Text Transfer Protocol) 웹 서버와 클라이언트가 통신할 때에 사용하는 프로토콜 웹 문서뿐만 아니라 일반 문서, 음성, 영상, 동영상 등 다양한 형식의 데 이터 전송 URL(Uniform Resource Locator) 인터넷에 존재하는 여러 가지 자원들에 대한 주소 체계 31
웹 브라우저 (web browser) 웹 브라우저 WWW 에서 정보를 검색하는 데 사용하는 소프트웨어 WWW 에서 가장 핵심이 되는 소프트웨어 웹페이지 열기, 최근 방문한 URL 및 즐겨찾기 제공, 웹페이지 저장 웹 브라우저 종류 1993 년, 모자이크 (Mosaic) 1994 년, 넷스케이프 (Netscape) 1995 년, 인터넷 익스플로러 (Internet Explorer) 파이어폭스 (Firefox) 사파리 (Safari) 크롬 (Chrome) 32
크롬 (Chrome) 구글 크롬 빠른 속도가 장점이며 간결한 디자인으로 초보자도 쉽게 사용 악성코드 및 피싱 방지 기능을 사용하여 안전하고 보호된 웹 환경 33
사파리 (Safari) 애플 사파리 빠른 속도 모바일용 사파리 ( 아이팟, 아이폰, 아이패드 ) 34
파이어폭스 (Firefox) 모질라 (Mozilla) 파이어폭스 사용자 편의를 위해 스마트 주소창, 탭 브라우징, 라이브 북마크, 통합 검색, 다양한 검색 엔진 지원 등을 제공 35
핵심 개념 인터넷은 TCP/IP 프로토콜을 이용해 정보를 주고받는 전세계적인 공 개 컴퓨터 통신망이다 ftp 혹은 sftp 명령어를 이용하여 파일을 전송할 수 있다 telnet 혹은 ssh 명령어를 이용하여 원격 호스트에 접속할 수 있다 36