김 지 현 jhkim@netwk.hannam.ac.kr 기초부터 배우는 TCP/IP 네트워크...... 제1장 TCP/IP 프로토콜 스택 입문 김 지 현 jhkim@netwk.hannam.ac.kr.

Slides:



Advertisements
Similar presentations
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Advertisements

컴퓨터와 인터넷.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
LAN의 구성요소 컴퓨터 네트워크과 오세원.
1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
3 장 OSI 기본 참조 모델 OSI : Open System Interconnection
Network Lab. Young-Chul Hwang
PHP입문 Izayoi 김조흔.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
23 장 TCP/IP 23.1 개요 23.2 네트워크층 23.3 전송층 23.4 응용층 24.5 요약.
ARP의 실험 발표자 : 이직수
VoIP (Voice Over Internet Protocol)
제 14장 Multicast & Broadcast
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
11 장 LAN 기본 개념과 Ethernet LAN
07. 디바이스 드라이버의 초기화와 종료 김진홍
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
WinCE Device Driver 실습 #2
4. LAN의 배선체계 (3장. LAN: Local Area Network)
FTP 프로그램의 활용 FTP 프로그램의 용도 인터넷 공간에 홈페이지 파일을 업로드할 때 필요
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
WOL(Wake-On Lan) 컴퓨터공학과 4학년 박기웅.
Network Security WireShark를 활용한 프로토콜 분석 I.
2장. 인터넷의 개념과 주소.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
22 장 전송층(Transport Layer)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Contents 통신 프로토콜의 필요성 OSI의 7계층 참조 모델 계층적 프로토콜의 동작 TCP/IP 프로토콜
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
MAIL CLIENT 김창우 윤성훈 이경재.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
Network 네트워크 이론 및 실습 TCP / IP 4장.
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
3 네트워크 기술 학습 목표 회선 교환 시스템과 패킷 교환 시스템의 차이와 원리를 이해한다.
Chapter 26 IP over ATM.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
웹(WWW).
Ping Test.
Chapter 27 Mobile IP.
LAN의 구성요소 학습내용 서버 클라이언트 NIC(Network Interface Card) 전송매체
Introduction to JSP & Servlet
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Part 05 TCP/IP 1. 네트워크 2. 포트번호.
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
Network Lab. Young-Chul Hwang
CHAP 15. 데이터 스토리지.
ARP.
Presentation transcript:

김 지 현 jhkim@netwk.hannam.ac.kr 기초부터 배우는 TCP/IP 네트워크...... 제1장 TCP/IP 프로토콜 스택 입문 김 지 현 jhkim@netwk.hannam.ac.kr

목차 TCP/IP 프로토콜 스택 TCP/IP Network 패킷 교환 네트워크의 H/W,S/W Application & Operating System Operating System 프로토콜 스택 프로토콜 스택의 실현 방법 Client/Server Q & A

TCP/IP 프로토콜 스택 TCP/IP와 OSI 모델 계층 구조로 이루어진 통신 규약들의 집합 프로토콜 슈트 또는 프로토콜 패밀리라고도 함

TCP/IP Network 용어 정의 호스트 : 네트워크에서의 컴퓨터 데이터 링크(통신 회선) : 호스트 사이를 연결하는 네트워크 Ethernet, 무선 LAN, FDDI, ATM,ISDN 회선, 전용 회선등.. 라우터 : 네트워크와 네트워크를 접속하는 장치 노드 : 호스트 + 라우터 패킷 : 네트워크 속을 흐르는 데이터 헤더 : 패킷 발송자 호스트의 주소, 보내는 곳 호스트의 주소, 페이로드의 내용에 관한 정보 페이로드 : 옮기고자 하는 데이터

TCP/IP Network 네트워크의 구조

패킷 교환 패킷 교환 송신할 데이터를 일정크기로 나눔 나눈 데이터에 헤더를 더함 종착점 주소 시작점의 주소 시퀀스 번호 Host A Host B Router1 Router2

네트워크의 S/W,H/W S/W H/W 웹이나 이메일의 기능을 실현 H/W 를 컨트롤해서 통신을 실현시켜 주는 것 호스트, 라우터, 허브, 통신 케이블 등.. 시작점 호스트 종착점 호스트 Router Router S/W S/W S/W S/W 송신 중계 수신 H/W H/W H/W H/W

Application & Operating System S/W Application : 목적에 맞게 선별하여 쓰는 S/W 웹 브라우저, 메일 소프트웨어, 비디오 중계 시스템, 네트워크 게임등.. Operating System H/W 를 제어 Application service 를 제공 Application 의 실행을 관리 Application 간 주고받는 메시지를 실제 네트워크를 통해 전송하는 역할 Host A Host B Application Application Router A Router B Operating System Operating System Operating System Operating System H/W H/W H/W H/W

Operating System Operating System Device Driver : 컴퓨터에 접속된 기기를 제어하는 S/W NIC(Network Interface Card) 를 제어 패킷을 케이블에 송/수신하는 처리를 담당 인터넷 모듈 : 케이블로 접속된 호스트나 라우터를 보고 골라서 최종 목적지까지 패킷을 보냄 모든 호스트 라우터에 IP 기능을 실현하는 인터넷 모듈이 있음 트랜스포트 모듈 : 인터넷 모듈이 동작하는 것을 전제로 동작 시작점의 호스트와 종착점의 호스트 내부에서 동작 UDP 나 TCP 의 기능을 실현하는 모듈

Operating System Operating System 트랜스포트 모듈 : UDP 혹은 TCP 의 헤더를 더함 Host A Router A Router B Host B Application Application 트랜스포트 모듈 트랜스포트 모듈 인터넷 모듈 인터넷 모듈 인터넷 모듈 인터넷 모듈 Device Driver Device Driver Device Driver Device Driver H/W H/W H/W H/W 트랜스포트 모듈 : UDP 혹은 TCP 의 헤더를 더함 인터넷 모듈 : IP 헤더를 더함 Device Driver : Ethernet 등의 데이터 링크의 헤더를 더함

프로토콜 스택 어드레스 www . hannam . ac . kr Jp 일본 uk 영국 fr 프랑스 kr 한국 나라 이름 Jp 일본 uk 영국 fr 프랑스 kr 한국 조직의 종류 ac 학교 co 기업 go 정부기관 or 법인 도메인 이름 hannam 한남대학교 naver 포탈검색 사이트 네이버 empas 포탈검색 사이트 엠파스 호스트 이름 www WWW서버 ftp ftp 서버 dns DNS 서버

프로토콜 스택 어드레스 호스트 이름과 조직 도메인 이름 사이 서브 도메인 이름 삽입 가능 실제 패킷이 전송될 때에는 IP Address 로 전송 IP Address 32 bits 8bit 단위의 값을 10진수로 쓰고, 마침표로 나누는 형식 203.247.39.33 TCP/IP 프로토콜로 통신하는 모든 호스트나 라우터에 부여 이 번호를 사용하여 목적한 호스트까지 패킷의 송신 처리를 실행 네트워크부와 호스트부로 구성 네트워크부와 호스트부를 구분하여 IP Adderess 를 표기하는 법 203.247.39.0/24 203.222.30.0/24 203.247.39.7 203.247.39.10 203.222.30.21 203.222.30.22 host1 host2 host3 host4 router

프로토콜 스택 데이터 링크를 사용해 패킷을 전송할 경우 고유의 어드레스가 필요 MAC : 데이터 링크의 어드레스 Ethernet 의 경우 48bits 의 숫자로 구성된 MAC 으로 표시 트랜스포트 레벨 하나의 컴퓨터에서 실행중인 다수의 애플리케이션을 구분위해 포트번호를 부여 16bits의 정수값(0 ~ 65535) 애플리케이션 레벨 : 도메인 이름 트랜스포트 레벨 : 포트 번호 IP 레벨 : IP Address Ethernet : MAC Address 0 ~ 1023 시스템 포트 번호 1024 ~ 49151 유저 포트 번호 49152 ~ 66535 다이내믹하게 할당, 사적으로 이용되는 포트 번호

프로토콜 스택 도메인 이름  IP Address 변환 DNS 를 이용하는 방법 Hosts 파일을 이용하는 방법 DNS Server 에 IP Address 의 검색을 요구 Hosts 파일을 이용하는 방법 Hosts 파일에 IP Address 와 도메인 이름의 대응 관계를 기술 DNS 서버 조회 hosts DNS 데이터베이스 하드 디스크의 데이터베이스로부터 검색 Hosts 파일에서 검색 DNS 서버군 호스트A DNS 서버 다른 DNS 서버 조회 DNS 서버 조회 DNS 캐시

프로토콜 스택 포트 번호 지정 번호가 아니라 영문자의 열로 작성된 키워드로 표시 가능 telnet : 23 번 포트 Http : 80번 포트 호스트A services 파일로부터의 검색

프로토콜 스택 IP 패킷 전송 1> Hop by hop Routing 방법 사용 - 라우터를 하나 경유할 때마다 다음 전송할 곳을 선택한다는 의미 2> 다음 전송할 주소를 찾는데 라우팅 테이블을 참조 - 종착점 네트워크 어드레스와 그에 대응하는 전송할 곳의 라우터가 기록 3> 전송할 주소를 결정후 데이터 링크를 통한 전송방법 결정 4> Ethernet 으로 송신할 경우 MAC 주소를 알아야 함 5> MAC 주소를 알아내기 위해 ARP 프로토콜 또는 ARP 테이블 참조 - ARP 프로토콜 : MAC Address 를 캐내는 프로토콜 - ARP 테이블 : IP Address 와 그에 대응되는 MAC 주소를 저장 6> MAC Address 를 헤더에 기입하여 패킷을 전송

프로토콜 스택 Application 트랜스포트 모듈 인터넷 모듈 디바이스 드라이버 보낼 메시지를 작성해서 트랜스포트 모듈에게 전달 트랜스포트 모듈 Application 을 식별키 위한 포트 번호에 관한 처리 메시지의 손상 여부 판별을 위한 체크섬 계산 처리 신뢰성을 위한 커넥션의 관리,순서 제어,전송 제어 이 모든 것을 헤더에 포함하여 메시지와 함께 인터넷 모듈에게 전달 인터넷 모듈 라우팅 테이블을 통해 적절한 다음 IP Address 를 선택 패킷의 최대 페이로드 사이즈(Maximum Transmission Unit)를 제한 MTU 에 맞게 페이로드의 크기 분할 디바이스 드라이버 물리적인 개체를 이용한 통신을 위한 처리 IP Address 를 ARP 을 통해 MAC Address 를 알아냄 MAC Address 사용해 데이터 전송

프로토콜 스택 프로토콜 스택의 상세 설명

프로토콜 스택 클라이언트 서버 모델 동작 방법 클라이언트 : 처리를 요구하는 프로그램 서버 : 클라이언트로부터 요구를 받아서 처리하는 프로그램 동작 방법 1> 서버와 클라이언트가 다른 컴퓨터에서 동작하는 방법 - 대부분의 일반적인 서버와 클라이언트의 동작방법 호스트A 호스트B 요구 클라이언트 서버 응답

프로토콜 스택 2> 클라이언트와 서버가 같은 컴퓨터에서 동작하는 방법 - 프로세스 사이의 통신을 실현하기 위해서 TCP/IP 를 이용한 방법 - 동일 컴퓨터 속과 네트워크에 접속된 컴퓨터와의 통신이 가능 3> 하나의 프로그램이 클라이언트와 서버를 겸하는 방법 - 이메일 배송 시스템인 MTA(Mail Transfer Agent) - 웹 등에서 자주 사용되는 대리 서버 (Proxy Server) 등의 시스템 호스트C 요구 클라이언트 서버 응답 호스트D 호스트E 호스트F 요구 요구 클라이언트 서버 클라이언트 서버 응답 응답

프로토콜 스택의 실현 방법 소켓 커널 애플리케이션 프로그램 애플리케이션과 트랜스포트 모듈 사이의 인터페이스 운영 체제를 기동할 때 메모리에 상주 프로세스 관리나 메모리 관리를 하는 부분 커널 모드 또는 슈퍼바이저 모드에서 동작 메모리 보호 기능은 작동되지 않음 애플리케이션 프로그램 메모리가 보호는 유저 모드에서 동작 컴퓨터 자원으로의 액세스가 제한

프로토콜 스택의 실현 방법 FIFO 방식의 버퍼큐를 사용 버퍼의 크기는 유한하기 때문에 저장할 수 있는 바이트 수나 패킷의 수는 제한 버퍼가 찼을 경우 공간이 생길때까지 기다리든지 패킷을 폐기 애플리케이션은 애플리케이션 모드에서 동작 오퍼레이팅 시스템은 커널 모드에서 동작 시스템콜 : 운영체제가 애플리케이션에게 서비스를 제공할 때의 인터페이스 소켓 : 애플리케이션과 트랜스포트 모듈의 사이의 인터페이스

프로토콜 스택의 실현 방법 버퍼큐를 이용한 패킷 송/수신의 문제점 포인터를 이용한 헤더의 처리 버퍼의 크기는 유한하고, 가득 차면 더 이상의 처리가 정지 메모리상의 패킷을 큐에 넣거나 꺼낼때마다 메모리의 복사가 이루어짐 메모리의 복사횟수의 증가는 처리 시간의 지연과 통신 성능의 저하를 야기 포인터를 이용한 헤더의 처리 IP나 TCP의 헤더를 하나의 메모리 블록에 저장하고, 포인터의 참조를 통해 큐에 패킷을 넣거나 꺼냄 데이터에 헤더를 추가나 삭제시 리스트 구조의 추가나 삭제로 처리 가능

프로토콜 스택의 실현 방법 메모리(주 기억 장치 및 가상 메모리) 소켓 TCP IP IF Operating System 송신 메시지 7 Operating System Send 시스템 콜 송신 메시지 6 소켓 pointer 송신 메시지 5 TCP헤더 TCP pointer 송신 메시지 4 TCP헤더 IP IP헤더 pointer TCP헤더 송신 메시지 3 IF pointer IP헤더 IF헤더 NIC 내의 버퍼 IF헤더 IP헤더 TCP헤더 송신메세지1 IF헤더 IP헤더 TCP헤더 송신메세지2

프로토콜 스택의 실현 방법 RAW_IP 소켓에서 IP 헤더를 직접 조작하는 환경 직접 데이터 링크 계층을 다룰 경우 오퍼레이팅 시스템 고유의 기능을 다룸

Client/Server 다중화와 버퍼 (1)큐에 넣어서 하나씩 처리하는 형태 - 많은 처리 요구가 들어와도 하나씩 처리 - 처리시간이 긴 요구가 있다면 뒤의 요구들의 처리는 오래 지연됨 Server Client 5 프로세스 요구5 요구4 요구3 Client 4 요구2 Client 3 Client 2 응답1 Client 1

Client/Server (2) 멀티 프로세스 - 요구 처리마다 프로세스를 생성하여 개별적으로 응답 - 오랫동안 계속되야 하는 다수의 처리에 유리 - 프로세스의 전환이 빈번히 일어나는 경우 처리가 조금 늦음 Server Client 5 처리접수 요구4 Client 4 요구5 Client 3 요구,응답의 교환 처리 요구3 요구,응답의 교환 처리 Client 2 처리 요구2 요구1 Client 1 요구,응답의 교환

Client/Server (3) 멀티 스레드 - 요구를 접수할 때마다 새로운 스레드 생성 - 하나의 프로세서로 병렬 실행하며 처리 - 하나의 스레드가 에러가 발생하면 프로세서 전체에 영향을 미침 - 전환이 빈번한 요구인 경우 프로세스의 전환보다 비교적 빠름 Client 5 처리접수 요구4 프로세스 Client 4 요구5 요구5 Client 3 요구,응답의 교환 처리 Server 요구3 요구,응답의 교환 처리 Client 2 처리 요구2 요구1 Client 1 요구,응답의 교환

Client/Server (4) 단일 프로세스나 스레드에 의한 다중처리(select 시스템 콜 사용) - 수신한 메시지를 구별하면서 처리 - 관계있는 메세지들로 처리 Client 5 요구5 처리 select 프로세스 요구4 Client 4 Client 3 처리 Server 요구3 처리 Client 2 처리 요구2 요구1 Client 1

Thank you… Q & A mailto://jhkim@netwk.hannam.ac.kr