Address Mask - 덧씌움 (prefix 길이만큼 전부 1, suffix 길이만큼 전부 0)
주소의 총 개수 : NOT(MASK) +1 (기계에게 편한 방법)
첫 주소 : IP Address AND (MASK)
마지막 주소 : IP Address OR[NOT[MASK]]

첫 주소 = 네트워크 주소 -> 라우터에 네트워크 주소가 들어있다.

prefix길이는 라우터에 있음. 라우터는 네트워크 주소로 비교하며 찾음

Block Allocation - ICANN에서 2의 power승만큼 주소를 준다.

ISP가 1000개 주소 요구시 최소 1024개를 준다. -> 2의 power승

Subnetting - 여러 레벨의 계층을 갖는다.

네트워크 주소의 개수 -> 2의 거듭제곱, 서브넷도 2의 거듭제꼽 꼴

만약 14.24.74.0/24에서 하나는 10개 주소, 하나는 60개 주소, 하나는 120개 주소로 총 3개의 subblocks로 나누고 싶다면 가장 큰 주소부터 작은주소 순서로 할당해야 한다.

먼저 120 -> 가장 근접한 2의 power승인 128이므로 32-log2(128) = 25
-> 14.24.74.0/25 ~ 14.24.74.127/25

64 -> 32-log2(64) = 26
-> 14.24.74.128/26 ~ 14.24.74.191/26

16 -> 32-log2(16) = 28
-> 14.24.74.192/28 ~ 14.24.74.207/28

Address aggregation (주소 통합) - 주소 요약, 경로 요약
여러개의 주소를 통합하여 더 큰 블록의 주소가 된다.

This-host address 0.0.0.0/32 -> 자기 자신의 주소
Limited-broadcast address(제한된 브로드캐스트 주소) 255.255.255.255/32
Loopback address 127.0.0.0/8 되돌아오는 주소
private address(사설 주소) 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16 -> 주소가 부족해서 생긴 대안 보통 집 공유기는 192.168.0.0/16을 사용하고 효과는 하나의 사설 망을 만든 것과 같다. 여기서 인터넷 연결을 위해선 NAT(공유기에서 사설 네트워크 주소를 인터넷을 쓸 수 있게 번역해주는 역할)을 사용
Multicast address 224.0.0.0/4

대부분 컴퓨터들이 인터넷에 연결될 수 있는데 반드시 1:1로 자신이 통신에 참여할 필요 X
Network Address Translation(NAT) : 네트워크 주소를 번역해주는 장치
이와 비슷한 개념 VPN(Virtual private network) : Address Translation -> 패킷들의 주소 값을 변환시켜줌(사설망 -> 인터넷)

NAT의 Translation Table 방식
Using One IP Address -> 한쌍의 컬럼으로 사설주소와 인터넷 주소가 매핑되는데 이는 만약 사설망 내 모든 주소가 같은 주소를 요청할 때 되돌아오며 누구것인지 알 수 없어지므로 사용X

Using a pool of IP Address(여러 주소를 사용하는 방식) : 풀 안에 있는 주소들이 같은 주소로 갈 때 다른 걸로 적절히 조정 -> 자원소모가 크므로 좋은 해결책이 아님

Using Both IP Address and Port address : 이는 보편적인 방법으로 IP 값만 비교하는 것이 아닌 IP와 Port 번호 그리고 프로토콜로 검증

포워딩 : 가장 인접한 홉으로 패킷을 보내는 것
포워딩은 표를 기반으로 사용, 네트워크 주소에 따라 어느 홉으로 보낼지 결정

Packet -> Extract destination address -> Search Table -> Next hop

라우팅 테이블은 Prefix의 길이가 가장 큰 순서(구체적인) 부터 시작한다. -> Longest mask matching
거대한 포워딩 테이블을 피하기 위해 계층적으로 구성되어야 한다.

IPv4 - unreliable datagram protocol - best effort delivery service
-> connection less protocol : 패킷이 들어오면 아무리 같은 소스에서 만들어진거라 하더라도 라우터는 신경 안쓰고 독립적으로 처리, 그때 그때 최선의 경로로 보내기 때문에 목적지에 다른 경로로 도착할 수 있음

IPv4의 구조
Version Number(4비트) : 처음은 IPv4인지 IPv6인지를 표시
HLEN(4비트) : 2^4 = 16인데 적어도 20~60 6비트(2^6 = 64)가 필요하다. 즉 부족하므로 4의 배수 단위로 보면 5~15를(20~60) 나타낸다.
ServiceType(8비트) : 어떻게 갈지 정의하는 것인데 안쓴다. -> 그냥 0으로 채워 넣음(But, QoS에서 사용하는 경우도 있다)
Total Length(16비트) : 패킷의 크기(헤더 크기 포함) 0-65535지만 최소 헤더의 길이는 20bytes므로 20~65535
Identitication(16비트) : 패킷의 이름, ID(랜덤값)
Flags(3비트) : 정보를 표시 첫 비트는 만약 쪼개지 말라고 하면 쪼개지 않고 버리게 되는 것 두번째 비트는 내 뒤에 더 있는지 여부 마지막 1비트는 안씀
Fragmentation offset(13비트) : 기준점으로부터 얼마나 떨어져 있는가 패킷을 쪼갰을 때 이어붙이는 정보 -> 시작 바이트 위치, 쪼개질 수 있는 offset 크기는 8의 배수(앞 flag의 3비트 손실 때문)
TTL(8비트) : 패킷의 수명, 라우터는 어디로 내보낼지만 생각 -> 만약 도착지가 2개라 무한 전달되는 상황이 발생할 수 있음. 이 때 전달하는 총 수명을 정해주는 것이 TTL 수명을 다하면 버린다. -> 홉의 개수를 정해주는 것
Protocol : 무슨 종류인가? ex) TCP,UDP, ICMP 등 페이로드의 종류
Header checksum : 페이로드에 대해서는 검증X 헤더만 검증
헤더길이를 16bits인 반으로 쪼개버림 -> ex) 010101... 다 더함 -> 다 더한값을 옆의 다 더한 값으로 뺌 -> 두개 더해서 0이 된다면 같다고 생각, 다르면 100% 오류 -> 버림(오류발생시)
Source IP Address(32bits)
Destination IP Address(32bits)
Options + Padding (0 to 40bytes) : 라우팅 경로 설정하는데 사용, IP 패킷에 있는 경우는 거의 없다 지원 안하면 다 무시

'이론 > 컴퓨터 네트워크' 카테고리의 다른 글

네트워크 층(4)  (2) 2023.03.20
네트워크 층(3)  (0) 2023.03.20
네트워크 층(2)  (0) 2023.03.13
네트워크 층(1)  (0) 2023.03.08

IP 주소에도 체계가 있다. IPv4 -> 32bit 주소 사용 = 2^32 = 약 40억

주소는 prefix + suffix  = 32bits로 이루어져있다.

prefix는 Network Address
suffix는 Host Address

Classful Address
A = 8bits 0 to 127
B = 16bits 128 to 191
C = 24bits 192 to 223
D = Multicast Address 224 to 239
E = Reserved for future use 240 to 255

A,B,C는 Unicast (1:1 송수신) 사용
D는 Multicast(1:다 통신 ex)단톡방), Broadcast 사용

Classful Address를 사용하면 주소 낭비가 심하고 적절하게 분배하기 어렵다.

subnetting : 네트워크를 쪼개는 것 
supernetting : 예를 들어 클래스 C를 받았는데 부족해서 2개를 합침

Classless Address
Slash Notation(/ 표현방법)
CIDR(Classless Inter-Domain Routing) : byte.byte.byte.byte/n (n = prefix length)
주소 할당시 2^n으로 할당해야 하는 한계점이 있음
suffix가 모두 0이면 Network Address

Address Mask - 덧씌움 ( prefix 길이만큼 전부 1, suffix 길이만큼 전부 0)
주소의 총 개수 : NOT(MASK)+1 (논리 연산은 기계에게 편한 방법)
첫 주소 : IP Address AND(MASK)
마지막 주소 : IP Address OR[NOT(MASK)]

첫 주소 = 네트워크 주소 -> 라우터에 네트워크 주소가 들어있다
prefix 길이는 라우터에 있고 라우터는 네트워크 주소를 비교하며 찾음
Block Allocation : ICANN에서 블록단위로 나누고 2의 power 승만큼 주소를 준다.
ISP가 1000개 주소 요구시 -> 최소 1024개를 준다. -> 2의 power승
2^32-n : 서브넷 개수 n= prefix 개수

'이론 > 컴퓨터 네트워크' 카테고리의 다른 글

네트워크 층(5)  (0) 2023.03.27
네트워크 층(3)  (0) 2023.03.20
네트워크 층(2)  (0) 2023.03.13
네트워크 층(1)  (0) 2023.03.08

Processing Delay : 패킷을 보고 목적지로 보내주는 시간, 장치별로 처리해주는 속도가 다르다. -> 측정할 수 없음

Queuing Delay : 대기열 시간(라우터 안에서 발생), 사용자가 많으면 발생, 확률적으로 계산 가능, 먼저 도착한 애가 먼저 처리됨(FIFO)

Total Delay = (n+1)(Delay(tr)+Delay(pg)+Delay(pr)) + (n)(Delay(qu)) // n은 노드수

Throughput(처리율) : 경로상 한군데를 조사했을 때 초당 지나가는 bit 수(실제적)

Delay as a function of load : 혼잡 발생시 버림
Throughput as a function of load : 혼잡 발생 시, 도달하지 못하면 재전송을 하며 ICMP 등 부가적인 데이터가 생김 즉, 실질적으로 전송되는 데이터가 낮아짐

Open Loop Congestion Control (혼잡을 사전에 예방)
loop - 정보가 되돌아옴을 의미 open loop - 가기만 하고 안온다.
혼잡이 안생기게 하는 정책
Retransmission policy : 재전송
Window policy : 관심 갖는 영역이 처리되었는지 selective repeat 선택적으로 잘못간 애만 다시 전송 but 이렇게 할 경우 컴퓨터가 하는 일이 많아짐
Acknowledgment policy(수신확인) : 굳이 매번 보낼 필요는 없음, ~까지는 잘 받았음
Discarding policy(버리는 정책) : 네트워크가 혼잡시 덜 중요한 패킷부터 버림(priority가 낮은 순서부터)
Admission policy : 네트워크가 혼잡하면 진입 자체를 차단

Closed-Loop Congestion Control(피드백이 있음)
Backpressure : 어느 한 부분에서 혼잡이 발생하면 Source로 한노드 한노드 거쳐서 Backpressure를 보낸다. 받은 Source는 보내지 않고 기다리게 된다.

Choke Packet  : 혼잡으로 버려진 패킷을 원래 패킷에게 바로 알려줌 ex)ICMP

Implicit signaling(암묵적) : 대표적 ACK, TCP에서 사용
- 2가지 상황 1. 아예 안오는 상황(더 심각) no Ack, 2. 보냈는데 똑같은 메시지가 오는 상황 -> 혼잡을 발생

Explicit signaling(명확한) : choke packet 같은 것, 지금 혼잡하니 보내지 말라고 함

'이론 > 컴퓨터 네트워크' 카테고리의 다른 글

네트워크 층(5)  (0) 2023.03.27
네트워크 층(4)  (2) 2023.03.20
네트워크 층(2)  (0) 2023.03.13
네트워크 층(1)  (0) 2023.03.08

Quality of Service (QoS) : 돈을 낸 만큼 서비스를 보장받아야 함
Security - IPv4에서 IPSec 사용 IPv4에서 IPSec을 위한 헤더가 존재하지 않기에 페이로드에 추가하여 사용하고 네트워크층과 전송층 사이에서 동작

서킷 스위칭(Circuit-Switching) : 서킷이라는 연결을 두 장비간 사이에 만들어서 통신에 사용 -> 전용선
패킷 스위칭(Packet Switching) : 데이터를 패킷 단위로 분할하여 전송
도착 순서가 다를 수 있다(경로에 대한 합의X -> connectionless)
서킷망(경로 고정) <-> 패킷망(경로 고정X)

네트워크 층 - 패킷망 : connectionless -> 라우터가 데이터를 얼마나 잘 처리할 수 있는가가 중요, 패킷(주소)만 보고 어디로 보내야 하는지 판단
패킷망에서 진짜 서킷은 아니지만 같은 경로, 같은 순서로 오게 하는 것 -> Virtual-Circuit
Virtual-Circuit 설정 단계
라우터가 가상 회로에 대한 항목을 생성
두 개의 보조 패킷을 교환해야 함
Request Packet : 소스에서 대상으로 전송됨
Acknowledgment Packet : 잘받았다는 표시(수신확인)

처음 과정은 라우팅을 한다. 그리고 받는 측이 Label을 붙임
Outing 과정에서는 라우팅을 다시 안하고 추후에 Label로 호출했을 때 라우팅 과정 없이 바로 목적지로 도착

통신을 마쳤으면 지워줘야한다(메모리 초과 or 비용)

네트워크층 성능
Transmission Delay : 단위시간동안 전송되는 데이터 총량
Delay(tr) = (Packet length) / (Transmission rate)
여기서 Packet의 단위는 bit, Transmission rate의 단위는 bps(bit-per-second)

Propagation Delay(전파 지연) : 거리에 따른 지연
Delay(pg) = (Distance) / (Propagation speed)
Distance 단위 m, Propagation speed 단위 m/sec

10000/100000000 = 10*/10^-6 10us(마이크로초)

'이론 > 컴퓨터 네트워크' 카테고리의 다른 글

네트워크 층(5)  (0) 2023.03.27
네트워크 층(4)  (2) 2023.03.20
네트워크 층(3)  (0) 2023.03.20
네트워크 층(1)  (0) 2023.03.08

+ Recent posts