본문 바로가기
CS/NetWork

[네트워크] 네트워크 계층 서비스(Network Layer)

by 계범 2022. 1. 19.
네트워크 관련 글 순서(참조 영상 기준)

애플리케이션 계층
- 네트워크 애플리케이션의 원리
- DNS
- TCP를 이용한 Socket 프로그래밍

전송계층
- 전송 계층 서비스의 원리
- rdt 원리
- 연결 지향 전송: TCP
- TCP 흐름 제어(3-way handshake, 4-way handshake)
- TCP 혼잡 제어

네트워크 계층
- 네트워크 계층 서비스
- Network Address Translation(NAT), DHCP
- 라우팅 알고리즘(Link State, Distance Vector)
- 계층적 경로 변경(AS)

링크 계층
- 다중 엑세스 프로토콜
- LANs(근거리 통신망)

무선 및 모바일 네트워크
- 무선 네트워크

웹 요청 시 일어나는일

네트워크 보안
- 대칭키 & 공개키,RSA 암호화
- Secure e-mail, SSL, MAC
- IPSec(ESP), Firewall(방화벽)

 

Network 계층

데이터를 목적지까지 전달하는 기능을 담당하는 계층.
라우터를 통해 IP주소에 해당하는 경로 선택, 해당 경로에 따라 패킷을 전달함.

전송 단위: IP Packet

 

라우터

라우터는 네트워크 계층에서 쓰이는 장비로, 서로 다른 네트워크 간의 통신을 이룰 수 있도록 패킷을 전송해주는 역할을 한다.

 

라우터 기능

라우팅(Routing)

라우터에 패킷이 들어오면 어디로 가야할지 경로를 정해주는 과정을 뜻함.(네트워크적 관점)

forwarding table을 통해 경로가 결정되고, fowarding table은 라우터 알고리즘에 의해 만들어진다.

(어떻게 나갈지 결정하는것)

 

포워딩(forwarding)

라우터의 입력포트로 ip패킷이 들어오면 이 패킷이 어디로 가야할지 방향에 맞게 출력포트로 전달해주는 것(하드웨어적 관점)

입력포트 내 forwarding table의 IP주소와 비교하여 방향을 정해준다.

(결정된 것에 따라 이동시켜주는것)

 

forwarding table

목적지 주소 범위 link interface
11001000 00010111 00010*** ******** 0
11001000 00010111 00011000 ******** 1
11001000 00010111 00011*** ******** 2
그 외 3

 

Longest prefix matching

: 포워딩 테이블은 주소 범위에 맞는 출력포트가 지정되어있는데, 주소 범위 중 가장 길게 매칭되는 곳에 포워딩하게 되어있다.

 

예시

더보기

11001000 00010111 00011000 01111111 ip주소를 가진 패킷이 들어옴. 해당 위의 표에서

11001000 00010111 00011000 ********

11001000 00010111 00011*** ********

두개가 매칭되지만 더 긴 첫번째 주소에 매칭된 포트 1로 보내줌.

 

라우팅 프로세서가 알고리즘에 의해 포워딩 테이블을 만들어주면, 각 인풋포트에 저장된다.

 

그래서 인풋포트에 ip패킷이 들어오면 포워딩 테이블에 의해 매칭되는데, 패킷 들어오는 속도가 더 빠르면 큐에 저장되었다가 실행된다.(딜레이 또는 loss 발생 이유)


IP 패킷

  • IP패킷은 네트워크 단의 데이터 단위
  • 헤더와 데이터로 이루어져있고, 데이터는 TCP 세그먼트(또는 UDP 등)를 뜻함.
  • 데이터 단의 앞 부분은 TCP 헤더(최소 20byte)
  • version: IP프로토콜의 버전 의미. 4면 Ipv4, 6이면 Ipv6
  • header length: 옵션필드를 포함한 헤더의 총 길이
  • type of Service: IP패킷의 우선순위 결정
  • identification: 식별자. 패킷 조립,분해 시의 식별하는 번호
  • TTL(Time To Live): 패킷이 경유할 수 있는 라우터 수(홉이라고도 부름).
    • 라우터를 지나갈때마다 -1씩 처리하여 0이되면 사라짐.
    • 네트워크상에서 무한하게 살지 않게 하기위한 필드.
  • protocol: ip패킷 내 데이터가 어떤 프로토콜의 데이터인지 알려주는 것.
    • TCP: 6, UDP: 17. 6이면 IP헤더를 떼고 TCP 전송계층에 전달.
  • total length: IP패킷 전체 길이.
  • flag: 패킷 단편화 여부 확인.
  • fragment offset: 단편화 옵셋.
  • header checksum: 오류 검사 필드.
  • source IP address: 출발지 IP 주소.
  • destination IP address: 도착지 IP 주소.

 

 

IP fragmentation, reassembly

 

IP패킷이 라우터를 거쳐서 목적지까지 가는데, 링크마다 패킷 지원 사이즈가 다르다 .

링크에서 제공하는 MTU[각주:1]보다 크다면 패킷이 쪼개져서 간다.

쪼개진 패킷들을 합치기위해 쓰이는게 아래와 같은 헤더 필드

 

identification, flag, fragment offset

 

예시

더보기

예시) 4000 Byte datagram, MTU = 1500 bytes

 

IP패킷헤더 20 데이터 3980 bytes

 

MTU를 초과하므로 3개로 쪼개짐.(각각 헤더가 붙음)

 

20 헤더 1480 fragflag(뒤에 더 있는가) 1 offset 0

20 헤더 1480 fragflag 1 offset 185(1480/8)

20 헤더 1020 fragflag 0 offset 370(2960/8)

 

/8을 하는 이유는 패킷헤더의 필더크기를 줄일려고 한것.

 


ip주소

  • 특정 호스트를 지정하는게 아닌, 인터페이스를 지칭하는 것
  • 즉 머신의 내부 인터페이스.(인터페이스가 여러개인 디바이스 라우터엔 ip주소가 여러개다)
  • Ipv4(32bit) 와 Ipv6(128bit) 버전이 있음.
  • 이 IP주소를 통해 다른 네트워크의 목적지까지 보내는 것이 가능해진다.

 

IP주소 배정

어떤식으로 각자 ip주소를 가질 것인가

 

1) 2^32비트 공간을 필요한사람에게 배정한다면?

사람이 늘어남에따라 힘들다.

라우터의 포워드 테이블의 엔트리가 엄청 커진다. 그에 따라 포워딩 테이블이 커지면 매칭시간이 오래 걸린다.

(Scalability challenge) (스케일이 커질때마다 문제가됨)

 

그래서 계층화를 시켰다.

앞 부분은 어떤 네트워크에 속하는지, 뒤는 어떤 호스트인지

 

Network ID(prefix,subnet ID)

  • 네트워크를 뜻하는 ID
  • 같은 네트워크에 해당하는 호스트들은 네트워크 번호가 같다.
  • 새로운 호스트가 등장하더라도 추가하기 쉽다.

Host ID

  • 해당 네트워크의 어느 인터페이스인지 나타내는 것.

Subnet Mask

  • 어디까지가 네트워크 ID인지 기계들이 이해하기 쉽게 정해둔것.(네트워크부분 이하는 0)
  • 서브넷 마스크를 통해 네트워크 주소를 구할 수 있음
    • subnet Mask & IP 주소 = 네트워크 주소

 

네트워크 주소 관리

 

상황1)

만약 위 그림처럼 네트워크를 24비트로 지정해두면 어떤 문제점이 있을까.

2^8 = 255까지의 호스트를 지정해줄 수 있는데 이를 넘게 사용하면 문제가 됨.

 

상황2)

만약 네트워크를 8비트를 하고 나머지를 호스트로 해두면 어떤 문제

그럼 전세계 네트워크가 2^8 안에 다 들어가야해서 문제가 됨.

 

 

옛날엔 각 기관마다 고정시켰다면, 현재는 가변적으로 사용

  • 예전엔 a클래스, b클래스 등등 클래스를 나눠서 관리했었음...

현재 네트워크 주소를 어떻게 관리되는가

2^32 관리하는 ICANN, 그 밑에 각 지역 관리하는 기관 배정 이하 등등

 

라우터에서의 서브넷

 

 

서브넷

  • 같은 네트워크 id를 가진 인터페이스 집합
  • 라우터를 거치지않고 갈 수 있음

 

다른 네트워크를 가기 위해선 라우터를 거쳐서 가야하고, 라우터의 각각 입력포트는 다른 IP(서브넷이 다름)를 가지고 있다.

 

 

 


참조

 

KOCW 네트워크 강의 - 한양대 2018 1학기 이석복 교수님

 

컴퓨터네트워크

본 강의에서는 인터넷 내부의 동작을 이해하는데 초점을 둔다. 인터넷의 기본이 되는 다양한 컴퓨터네트워크 프로토콜을 응용계층으로부터 시작하여 링크계층까지 Top-down방식으로 소개한다.

www.kocw.net

 

  1. Maximum Transfer size [본문으로]

댓글