Computer Science/Network
Network layer
yellowmarine
2020. 5. 8. 19:49
Network Layer
Introduction
How?
- 데이터그램 형식으로 보내진다.
- 라우터를 통해 경로를 설정
- 라우팅 알고리즘을 통해 포워딩 테이블을 설정 -> 주소 범위로 테이블 관리 -> longest prefix matching
- $$2^{32}$$으로 IP를 할당하는것은 트래픽이 넘처나고 관리가 힘들어진다
IP datagram format
- Data -> TCP 와 UDP의 데이터를 가지고 있다
- 32비트 source, destination 주소
- TTL (Time to live) -> 라우터 네트워크를 무한히 도는 것을 막기 위해 설정 라우터를 거칠때마다 -1
- 40 byte짜리 packet 들 ack만 하는 패킷
IPv4
- 32비트 짜리 우리가 생각하느 123.123.123.123 형태 8비트 짜리로 자른다!
- 네트워크 인터페이스 카드에 따라 여러 아이피 가능
- 처음 24비트는 네트워크 아이디, 뒤의 8비트는 호스트 아이디
Classic vs Present
- 예전에는 prefix 로 진행 하지만 비효율적
- 현재는 Classless Inter Domain Routing -> ip뒤에 /0~24 정도로 네트워크를 프리픽스 한다
Subnet
- IP를 통해 연결되는 것은 IP자원을 너무 비효율적 -> 고로 subnet으로 연결
- 라우터는 서브넷에 속할 수 있다.
NAT(Network Address Translation)
- local 적으로 IP를 할당 라우터에서 자동적으로 global IP 주소로 변환
- 라우터 별로 NAT table 존재
- NAT를 사용할 경우 서버로써 역할을 할 수는 없다 -> NAT table이 변환 과정에 아이피와 포트 번호를 변경하기 때문
DHCP(Dynamic Host Configuration Protocol)
- GWR(GateWay Router)가 모든걸 조절!
- 네트워크 IP를 할당해준다.
IP Fragmentation
- MTU 보다 큰 페킷에 대해서 라우터에서 쪼개서 전송한다.
- Flag는 뒤에 쪼개진 패킷의 유무를 표시
- offset은 크기의 /8
- 모든 패킷이 assembly 되지않으면 다시 전송
ICMP
- TTL, packet 유실 등과 같은 상황을 보고해주는 프로토콜!
- 라우터의 트레이스를 가능하게 해준다.
IPv6
- tunneling 해줄 수 있는 라우터가 필요하다
- 128비트 짜리 큰 용량
Fowarding Table 생성
- Link state algorithm
- 모든 그래프의 형태를 알고있는 상황에서 구하는 알고리즘
- 다익스트라 알고리즘!
- Distante vector
- 벨멘 포드 알고리즘
- count to infinite 라는 상황이 발생 고로 poison reverse 사용
Hierachical network
- AS(autonomous system)
- 각각 자체적인 라우팅 시스템을 가진 그룹
- Infra, Inter 로 나누어짐