1. 의사 헤더의 정보는 실제 정보인가? 1 / 23 UDP의 허용된 계층위반

Slides:



Advertisements
Similar presentations
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
Advertisements

16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
Network Lab. Byoung-Son, Choi
1. Window size는 buffer size?
6 데이터 링크 계층.
RTP,RTSP의 개요 및 동작과정 장민환 조효철.
Network Lab. Young-Chul Hwang
Chapter 2. IP Address IP Address의 구성에 대한 자세한 설명과 함께 IP Address를 효율적으로 관리하기 위한 방법인 서브넷팅, 수퍼넷팅, VLSM 등에 대해서 단계별로 접근할 수 있다. 몇가지 예제를 통해서 서브넷팅에 대한 개념을 정리하고.
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Chapter 11 Data Link Control.
VoIP (Voice Over Internet Protocol)
4.3 Managing TCP sessions 4조 임종철,임정묵,이규윤.
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
제 14장 Multicast & Broadcast
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
TCP와 UDP.
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
컴퓨터 네트워크 PART 02 프로토콜 (chapter 03 트랜스포트 계층) 임효택
10 장 데이터 링크 제어(Data Link Control)
제 22 장 TCP Persist Timer.
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 5 UDP Socket 소켓 프로그래밍.
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
Trivial File Transfer Protocol (TFTP)
Chapter 07. 소켓 옵션.
Network Security WireShark를 활용한 프로토콜 분석 I.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
22 장 전송층(Transport Layer)
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
21 장 전송층(Transport Layer)
제 12 장 전송 제어 프로토콜(TCP) 12.1 프로세스간 통신 12.2 TCP 서비스 12.3 세그먼트 12.4 옵션
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
Network 네트워크 이론 및 실습 TCP / IP 4장.
10 장 데이터 링크 제어(Data Link Control)
GM7 PLC 모니터링 프로그램 한국 폴리텍 항공대학 항공정보통신과 송 승 일.
10 장 데이터 링크 제어(Data Link Control)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
6.2.3 OSI 계층화의 개념 학습내용 (N) 접속(connection) 데이터단위(Data Unit)
10 기타 전송 계층 프로토콜.
Chapter 26 IP over ATM.
제 19 장 TCP 대화식 데이터 흐름.
Ping Test.
Chapter 27 Mobile IP.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
7 IP 프로토콜의 이해 학습 목표 네트워크 계층의 필요성과 역할을 이해한다.
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
The OSI Model and TCP/IP Protocol Suite
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
컴퓨터 네트워크 PART 02 프로토콜 (chapter 03 트랜스포트 계층) 임효택
Network Lab. Young-Chul Hwang
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
ARP.
Presentation transcript:

1. 의사 헤더의 정보는 실제 정보인가? 1 / 23 UDP의 허용된 계층위반 UDP는 발신지와 수신지 IP 주소를 얻기 위해 IP Layer를 조회하여 가상헤더를 구성함. 프로토콜 구현상 IP 계층의 정보는 데이터가 UDP로 전해질 때 쉽게 접근 가능함. htons() short intger(일반적으로 2byte)데이터를 네트워크 byte order로 변경한다. 12장을 들어가기에 앞서 저번 시간에 보충하기로 한 내용에 대해 이야기 하겠습니다. UDP와 TCP의 체크섬을 계산할 때 의사헤더를 추가하는데 이 의사 헤더의 정보는 실제 정보인지에 대해 물으셨습니다. 의사헤더를 만들 때 프로토콜 구현상 계층위반을 저지르게 됩니다. Code에서와 같이 의사헤더에 들어가는 IP주소를 쉽게 접근할 수가 있습니다. < UDP 의사헤더의 요소를 모두 더하는 code > 1 / 23

2. 체크섬 계산(IP) 2 / 23 IP 체크섬 계산 [ Input ] [function] ip_header 먼저 왼쪽은 INPUT 값으로 들어갈 총 20bytes의 IP 헤더를 나타냈습니다. 오른쪽은 ip_checksum을 계산 할 함수 입니다. 계산 과정으로는 먼저 헤더를 2바이트씩 잘라 모두 더합니다. 캐리가 있을경우엔 캐리를 더해줍니다. 1의 보수 형태를 취해 반환해줍니다. 2 / 23

2. 체크섬 계산(UDP) 3 / 23 //홀수 길이라면 패드 바이트를 더함 //UDP 데이터그램을 2byte씩 잘라서 더함. //의사헤더의 src IP 부분을 더함. UDP 체크섬을 계산하는건 IP와 크게 다를게 없습니다. 차이점이라고 하면 의사헤더의 내용을 더해주는 것입니다. 주석참고. //의사헤더의 dst IP 부분을 더함. //의사헤더의 protocol 번호와 udp 길이를 더함. 의사헤더 계산 //16bit를 넘어가는 carry가 존재한다면 carry를 더함. //1의 보수를 취해줌. 3 / 23

3. UDP 데이터가 512바이트 이하로 제한된 이유 4 / 23 재조립을 위한 IPv4 버퍼 사이즈 최소 576bytes. 이를 위한 송신자 UDP 데이터 제한 512bytes 이하. 이유: RFC 791 576bytes – 60bytes (최대 IPv4 헤더 크기) – 8bytes(UDP 헤더 크기) = 508 byte. IP&UDP헤더를 뺀 사이즈(508bytes) < UDP 데이터 제한(512bytes)? => IPv4 header의 일반적인 크기는 20 byte이므로 순수 data의 크기가 좀 더 커도 상관 없음. 가끔 전송 실패 할 때가 있음. 교재에 따르면 재조립을 위한 IPv4 버퍼 사이즈는 576bytes 이하가 되야 한다고 합니다. 이 중 UDP 애플리케이션의 데이터를 512byte 이하로 제한하게 되어있습니다. 계산을 하게 되면 4bytes 만큼의 오차가 존재합니다. 그 이유를 RFC(Request for Comments)문서에서 찾으면 일반적인 인터넷 헤더는 20 octets이므로 상위 레벨 프로토콜을 조금 더 허용할 수 있다. 라고 설명 되어 있습니다. 2019년 4월 14일 오전 2시 34분 4 / 23

4. Setsockopt() api 코딩 예제 5 / 23 setsockopt() : 소켓의 옵션값을 설정하는 함수 Level : 소켓 옵션의 레벨 => Optname : 옵션의 이름 Optval : 옵션 정보를 저장한 버퍼의 포인터 Optlen : optval 버퍼의 크기 Setsockopt()는 소켓의 옵션값을 설정하는 함수로 함수원형은 이것과 같습니다. 다음 2019년 4월 14일 오전 2시 34분 5 / 23

4. Setsockopt() api 코딩 예제 6 / 23 API를 이용하여 buffer size 변경 이 그림은 Setsockopt를 사용한 Buffer size 변경 예제 입니다. 함수 호출 전 버퍼 사이즈는 87380이고 함수 호출 후 버퍼 사이즈는 100000로 변경 되었습니다. 2019년 4월 14일 오전 2시 34분 6 / 23

5. Man sock –u –s 7 / 23 - SOCK 책의 저자가 만든 프로그램 Sock 프로그램의 사용법입니다. 여기서 인자 U는 UDP를 사용한다는 것이고 인자 S는 Server를 만든다는 것입니다. 2019년 4월 14일 오전 2시 34분 7 / 23

6. UDP 종단점 생성 로컬 IP 주소의 제약 UDP 서버는 종단점을 생성할 때 자신의 로컬 IP 주소를 wildcard화 함. 들어오는 UDP 데이터 그램을 모두 받아 들이기 위함. 포트 7777로 들어오는 모든 외부 ip에 대해 허락 함. 로컬 IP주소를 wildcard화 한다는 것은 어떤 IP주소든 허락한다는 의미이며 그림에서 udp server 7777을 만들면 포트 7777로 들어오는 모든 외부 ip에 대해 허락한다는 의미 입니다. Local address 사용자 ip Foreign address 상대 ip -l 소켓 목록 -n ip주소 출력 --udp udp 출력 2019년 4월 14일 오전 2시 34분 8 / 20

7. 다중 주소 설정(가능 여부) Ip addr add 10.0.2.13 scope host dev eth0 Ip addr add 10.0.2.14 scope host dev eth0 sock –u –s –A 10.0.2.13 8888 ( -u: udp, -s: server, -A: SO_REUSEADDR) sock –u –s –A 10.0.2.14 8888 sock –u –s –a 8888 다중 주소 설정의 예시를 보이기 위해 Eth0 인터페이스에 13과 14 아이피를 관찰하도록 설정하고 Sock 프로그램으로 2019년 4월 14일 오전 2시 34분 9 / 23

So_reuseaddr 2019년 4월 14일 오전 2시 34분 10 / 23

12. TCP: 전송 제어 프로토콜 2015. 7. 11 김 진 홍 jhkim3624@etri.re.kr

contents 개요 TCP 소개 TCP 헤더와 캡슐화 정리

1. 개요 13 / 23 TCP 연결 지향의 신뢰성 있는 바이트 스트림을 제공 UDP와 같은 네트워크 계층을 이용 연결지향 TCP를 이용하는 2개의 애플리케이션이 데이터를 교환하기 전에 TCP 연결을 확립함을 의미 2019년 4월 14일 오전 2시 34분 13 / 23

1. 개요 - 계속 14 / 23 통신 문제 해결 방법 부호이론 전송을 반복해서 시도 정보를 전달할 때에 효율을 높이기 위해 또는 정보의 보호를 위하여 부호로 바꾸어 전달하는 것을 연구. 오류정정코드 일부 비트에 피해가 발생 하더라도 실제 정보를 추출할 수 있는 여분의 비트를 추가 전송을 반복해서 시도 ARQ(Automatic Repeat reQuest, 자동 반복 요구) 2019년 4월 14일 오전 2시 34분 14 / 23

1. 개요 - 계속 15 / 23 재전송 : 비트 오류를 다루기 위한 방법 중 하나 재전송을 위해 다음이 필요함 : 수신자가 패킷을 수신했는지 여부 수신한 패킷이 동일한지 여부 수신자는 패킷을 수신 했을 때 ACK를 전송 함 송신자가 ACK를 받으면 다음 패킷을 보냄 Question Q1. 송신자가 ACK를 얼만큼 기다릴 것인가? (14장) Q2. ACK가 분실된다면 무슨 일이 발생하는가?(다음) Q3. 패킷을 수신했으나 오류가 있을 경우?(다음) 2019년 4월 14일 오전 2시 34분 15 / 23

1. 개요 - 계속 16 / 23 Q2. ACK가 분실된다면 무슨 일이 발생하는가? 송신측은 패킷이 폐기된 경우와 구분하기 어려움. 송신기는 패킷을 재전송 함. Q3. 패킷을 수신했으나 오류가 있을 경우? 패킷의 오류검출을 위해 CRC를 사용함. 오류가 포함 되어 있다면 ACK 전송을 억제함. 송신기는 패킷을 재전송 하게 됨. 문제점 (1) 여러 가지 이유로 인해 패킷의 사본을 중복 수신할 가능성. (2) 송신자는 ACK 대기 시간동안 아무것도 하지 못함. 해결책 (1) 순서번호(sequence number)를 이용함. (2) 패킷의 윈도우와 슬라이딩 윈도우 2019년 4월 14일 오전 2시 34분 16 / 23

1. 개요 - 계속 17 / 23 슬라이딩 윈도우 현재 윈도우, 크기 = 3 … 3 4 5 6 7 전송과 확인응답 아직 전송되지 않은 것 윈도우 오른쪽 끝 윈도우 왼쪽 끝 … 3 4 5 6 7 2019년 4월 14일 오전 2시 34분 17 / 23

1. 개요 - 계속 18 / 23 송신측 어떤 패킷이 해제 됐는지 어떤 패킷이 ACK를 기다리는지 어떤 패킷이 아직 전송되지 않았는지 수신측 어떤 패킷이 수신되고 응답했는지 어떤 패킷이 기대되는지 어떤 패킷이 제한된 메모리로 인해 유지 되지 못하는지 문제점 얼마나 큰 윈도우를 사용해야 하는가? => 흐름제어로 해결 수신기와 네트워크가 송신기의 데이터 전송률을 처리하지 못한다면 어떤 일이 발생 하는가? =>흐름제어와 혼잡제어 2019년 4월 14일 오전 2시 34분 18 / 23

1. 개요 - 계속 19 / 23 흐름 제어 송신기의 속도를 강제로 늦추는 방법 (1) 전송률 기반 (2) 윈도우 기반 문제점 송신기에 전송률을 할당하고 그것을 초과해 전송하지 못하게 보장 함 (2) 윈도우 기반 슬라이딩 윈도우 사용시 많이 사용됨 윈도우 크기를 시간에 따라 변화하도록 함 윈도우 광고를 사용 함. 수신기가 송신기에게 얼마나 큰 윈도우를 사용할 수 있는지 전달하는 방법 문제점 송신기와 수신기 사이 네트워크에서는 효율적이지 못함 송신기의 전송률이 라우터의 능력을 초과할 가능성이 있음 혼잡 제어가 필요 2019년 4월 14일 오전 2시 34분 19 / 23

1. 개요 - 계속 20 / 23 혼잡 제어 송신기가 네트워크를 압도하지 못하게 천천히 하는 것 16장에서 다룸. 2019년 4월 14일 오전 2시 34분 20 / 23

2. TCP 소개 21 / 23 신뢰성 제공을 위해 순서번호 체크섬 각 패킷의 처음 바이트에 대한 오프셋 바이트 가변크기 허용과 재 패킷화에 사용 됨 순서번호를 사용하면 중복 세그먼트를 폐기하고 세그먼트의 순서를 조정할 수 있음. 체크섬 TCP 헤더와 데이터, IP 헤더로부터 체크섬을 계산함. 정확하지 않은 체크섬을 가지고 도착하면 그 패킷을 폐기하고 ACK를 보내지 않음. 2019년 4월 14일 오전 2시 34분 21 / 23

2. TCP 소개 22 / 23 신뢰성 제공을 위해 타이머 TCP는 세그먼트 그룹을 전송 할 때 재전송 타이머를 설정함. 시간 내에 ACK가 수신되지 않으면 세그먼트를 재전송 함. 자세한 내용은 14장(TCP 타임아웃과 재전송). 여기서 처음 재전송은 184 대음은 187 다음은 193 3초 6초 ,,, 늘어남. 타임아웃이 2배씩 증가함. 2019년 4월 14일 오전 2시 34분 22 / 23

3. TCP 헤더와 캡슐화 23 / 23 IP Header TCP Header TCP Data TCP Segment IP datagram 20 Bytes 31 15 16 발신지 포트 목적지 포트 순서번호 0 ~ (2^32 – 1) 확인응답번호 (seq+1) 헤더길이 예약(0) CWR ECE URG ACK PSH RST SYN FIN 윈도우 크기 TCP 체크섬 긴급 포인터 옵션 옵션 : MSS라고 하는 최대 세그먼트 크기 옵션. 교환하는 첫번째 세그먼트에서 옵션을 지정함. 긴급 포인터 : 긴급한 메시지를 보낼때 윈도우크기 : 윈도우 광고를 위해 사용됨 2019년 4월 14일 오전 2시 34분 23 / 23

4. 정리 24 / 23 TCP 신뢰성 있음 연결 지향 바이트 스트림의 전송계층 서비스 오류를 다루기 위한 방법 오류정정코드 추가 데이터 재전송 타이머를 설정하여 처리 패킷 순서 번호 표시 데이터 전송 효율 슬라이딩 윈도우를 사용하여 높임. 2019년 4월 14일 오전 2시 34분 24 / 23

Qna