2024/11 10

IPv6

IPv6 Datagram formatsource와 dest 주소가 각각 128비트씩 들어가고 4줄 씩 총 8줄을 차지하고, flow label은 패킷들의 집합의 레이블이다.**checksum 필드, option 필드, reassemble/fragmantaion 필드가 빠졌다. tunnelingIPv6와 IPv4를 함께 사용하는 기술위에서 보면 IPv4 속에 IPv6 데이터그램을 합친 것을 볼 수 있다.특정 노드가 IPv6만, 특정 라우터는 IPv4만 지원한다고 한다면 위와 같이 터널링 기법을 활용하여 데이터를 보낼 수 있다.아래와 같은 상황일 것이다.다음과 같이 IPv6에서 IPv4로 한 층을 더 씌우면서 src와 dest가 잠시 바뀐다.IPv6라는 것을 구분하기 위해 Flow:X를 추가한다.

cs/데이터통신 2024.11.30

NAT

NAT(Network Address Translation)-가정 집의 공유기에 NAT 기능이 있음(주소 공유 기능)NAT는 local network에서 단 하나의 network 주소를 공유하여 외부로 나가는 유일한 통로 역할을 한다.외부로 데이터그램이 나가게 되면 전부 동일한 source NAT IP 주소를 갖게 된다. (포트 번호는 다름, 이 포트번호로 어떤 device에서 온건지 구분, 밖에서는 하나의 IPv4 주소로 보임)장점1. 하나의 ip주소로 여러 device 연결 가능2. 여러 인터페이스가 하나의 IP 주소로 보임(내부 숨김)3. ISP를 바꾸기가 용이(NAT만 변경하면 됨)동작과정1. host가 데이터그램을 dest로 보낸다.2. NAT 라우터가 소스 addr를 WAN side addr로 ..

cs/데이터통신 2024.11.30

IP Datagram format

Network layer네트워크 레이어에는 IP protocol(datagram format, addressing), Path-selection algorithms(포워딩 테이블 생성 프로토콜)그리고 ICMP protocol이 있다. 이 중 IP가 제일 중요하다. IP가 없으면 인터넷은 동작을 하지 않기 때문이다.datagram format을 보자.IP Datagram formatver: IP protocol 버전을 나타낸다.head len: 옵션에 따라 헤더가 20byte~60byte의 크기를 가지고, 1 당 4byte를 나타내므로 5~15의 숫자가 들어갈 수 있다.length: 데이터그램의 전체 길이를 나타낸다. TCP에는 length field가 없어 이 필드를 이용하여 길이를 간접적으로 추정 가능..

cs/데이터통신 2024.11.30

Network layer (1)

Network layer protocol and service네트워크 계층의 주요 역할:데이터그램 생성(캡슐화): 전송 계층 데이터를 IP 데이터그램으로 변환.데이터그램 전달: 라우터와 네트워크 장치를 통해 송신지에서 수신지로 데이터그램을 이동.데이터그램 분석(헤더 확인): 목적지 주소를 기반으로 경로를 설정.라우터의 역할:IP 데이터그램의 헤더를 확인하고, 다음 경로로 데이터를 전달(포워딩).data plane과 control planedata plane은 포워딩에 관련된 부분으로 라우터 내(지역적인)에서의 기능을 다룬다.control plane은 라우팅에 관련된 부분으로 라우터끼리의 로직 즉, network-wide logic을 다룬다. 네트워크 계층은 모든 인터넷 디바이스에 구현되어 있다.(Tran..

cs/데이터통신 2024.11.30

Congestion control

혼잡 제어: 너무 많은 소스에서 너무 많은 데이터들을 너무 빠르게 보내는 것을 방지하도록 제어하는 것흐름제어: 흐름제어는 1대1 통신에서 윈도우 버퍼가 오버플로우 되지 않도록 흐름을 제어하는 것이고,혼잡제어: 라우터에서 큐잉 딜레이와 패킷 로스를 방지하기 위해 다수의 sender가 너무 빠르게 데이터를 전송하지 않도록 조절하는 것이다 AIMDTCP에서는 sender가 혼잡한 정도를 추측한다. AIMD(Additive Increase Multiplicative Decrease) 방식을 사용하는데쉽게 말해 패킷 로스가 발생할 때까지 전송 비율을 증가시키다가 패킷 로스가 발생하면 전송 비율을 반으로 줄여 다시 늘리는 방식이다. 1. 전송 비율을 매 RTT마다 증가시킴2. 패킷 loss 발생 시 전송 비율을 반..

cs/데이터통신 2024.11.30

TCP State transition diagram

각 노드는 상태를 나타내고 화살표는 다음 상태로의 전환을 유발하는 이벤트이다./는 독립적인 상태가 두 개 있다면 수신/송신으로, 동작과 상태가 있다면 and로 해석한다.기본적으로 send가 없으면 전부 recv로 해석해야 한다. 1. CLOSED초기 상태: TCP 연결이 닫혀 있는 상태입니다.전환 조건:Passive Open: 서버가 연결을 수락할 준비를 하면 LISTEN 상태로 전환.Active Open/SYN: 클라이언트가 연결 요청(SYN)을 보내면 SYN-SENT 상태로 전환.Close: 상태를 유지하며 연결 종료.2. LISTEN설명: 서버가 클라이언트의 연결 요청(SYN)을 기다리는 상태입니다.전환 조건:SYN/SYN+ACK: 클라이언트로부터 SYN 또는 SYN+ACK을 받으면 SYN-RCVD..

cs/데이터통신 2024.11.30

TCP RTT(Round Trip Time)과 3-way handshake

RTT란, 데이터가 송신됐다가 응답이 돌아오는 시간이다. TCP는 데이터 송신 중 문제가 발생했을 때 재전송을 위해 timeout을 설정하는데, 이는 RTT보다 길게 설정한다.허나 매번 인터넷 환경이 변하므로, TCP는 동적으로 timeout 시간을 조정한다. 측정 방법은 sender에서 세그먼트를 보낸 뒤, ACK이 돌아오는데까지 걸린 시간을 측정한다. 단, 도중에 세그먼트를 재전송한 경우에는 RTT값으로 치지 않는다. 먼젓번에 보낸 세그먼트에 대한 ACK인지, 재전송한 세그먼트에 대한 ACK인지 알 수 없기 때문이다.하지만 RTT를 상시 변경할 수는 없기 때문에 앞전에 측정한 RTT 값과의 평균을 사용하여 timeout을 설정한다.  또한 앞선 평균 RTT와 SampleRTT의 비율을 조정하여 구한다..

cs/데이터통신 2024.11.30

Transport layer

Transport layer가 제공하는 서비스logical communication(논리적 통신)을 제공한다. 이는 서로 다른 두 호스트는 실질적으로 네트워크 레이어를 통해 연결되지만 application에 있는 프로세스가 서로 연결되어 있다고 느끼게 해준다. (process to process 통신을 제공한다.) Transport Protocol(이하 TP)에서 Sender는 application messages를 세그먼트로 나누어 네트워크 레이어로 전달하면, Receiver는 세그먼트를 message로 다시 재조립해 application layer로 전달하는 방식으로 작동한다. TCP와 UDP 두 가지 방식이 있다. 작동 방식을 조금 더 자세히 보자.  Sender에서 application layer..

cs/데이터통신 2024.11.30