Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

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

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

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

5 TCP/IP Network 네트워크의 구조

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

7 네트워크의 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

8 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

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

10 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 등의 데이터 링크의 헤더를 더함

11 프로토콜 스택 어드레스 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 서버

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

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

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

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

16 프로토콜 스택 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 를 헤더에 기입하여 패킷을 전송

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

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

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

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

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

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

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

24 프로토콜 스택의 실현 방법 메모리(주 기억 장치 및 가상 메모리) 소켓 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

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

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

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

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

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

30 Thank you… Q & A


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

Similar presentations


Ads by Google