[데이터 통신] 7장 IP 프로토콜

2023. 4. 17. 17:27·🍞 Computer Science
반응형

1. 네트워크 계층의 기능

라우팅

네트워크의 구성 형태에 대한 정보는 라우팅 테이블이라는 기억 장소에 보관

패킷의 전송 경로를 지정하는 라우팅은 네트워크 계층의 가장 중요한 역할

혼잡 제어

네트워크에 패킷 수가 과도하게 증가하는 현상을 혼잡

혼잡 현상을 예방하거나 제거하는 기능을 혼잡 제어

패킷의 분할과 병합

상위 전송 계층에서 송신을 요구한 데이터는 최종적으로

MAC 계층의 프레임 구조에 정의된 형식으로 캡슐화되어 물리적으로 전송

따라서, 전송 계층에서 보낸 데이터가 크면 패킷으로 쪼깨야함

 

연결형 서비스

가상회선

비연결형 서비스

다이어그램, IP 프로토콜

 

정적 라우팅

패킷 전송이 이루어지기 전에 경로 정보를 라우터에 미리 저장하여 중개하는 방식

동적 라우팅

경로 정보를 네트워크 상황에 따라 적절하게 변경

 

HELLO/ECHO 패킷

라우터의 초기화 과정에서 가장 먼저 할 일은 이웃 라우터의 경로 정보를 파악하는 것

즉, HELLO 패킷을 이용해 해당 라우터 간 경로가 이용 가능한지 파악

라우터 사이의 전송 지연 시간을 측정하기 위해 ECHO 패킷 전송

 

 

 

혼잡의 원인

네트워크 용량에 비하여 전송 패킷이 많기 때문

패킷의 도착 순서가 뒤바뀌면 수신 호스트는 패킷을 보관하거나 버릴 수도 있다.

 

패킷별로 네트워크에 존재할 수 있는 일정한 생존 시간을 지정해 시간을 초과하지 않도록 설계

패킷을 버리면 패킷 재전송 현상 발생해 네트워크 혼잡도 높임

생존시간은 각 라우터를 통과할 때마다 홉 수를 증가시킴

 

트래픽 성형

송신 호스트가 전송하는 패킷의 발생 빈도가 네트워크에서 예측할 수 있는 전송률로 이루어지게 하는 기능

송신 호스트가 사전에 약속한 트래픽보다 과도한 양의 패킷을 전송하면 네트워크에서 적절히 통제 

트래픽 성형과 관련된 알고리즘 중에서 유명한 것이 리키 버킷

 

혼잡 제거 

ECN 패킷 사용

ECN 패킷을 수신한 송신 호스트는 데이터 패킷이 전송되는 경로에서

1) 혼잡 발생 가능성을 인지하였으므로

2) 전송 패킷의 양을 줄인다.

ECN 패킷을 전달받은 송신 호스트는 정해진 비율에 따라 송신 패킷의 양을 줄여서 전송해야 한다.

 

2. 라우팅 프로토콜

1) 거리 벡터 라우팅 프로토콜

라우터가 자신과 직접 연결된 이웃 라우터와 라우팅 정보를 교환하는 방식

링크 벡터

거리 벡터

다음 홉 벡터

 

- RIP 프로토콜 (거리 벡터)

내부 라우팅 프로토콜

 

2) 링크 상태 라우팅 프로토콜

라우터 간의 정보 교환 원리가 거리 벡터 방식과 반대 

개별 라우터가 이웃 라이터까지의 거리 정보를 구한 후, 이를 네트워크에 연결된 모든 라우터에 통보

 

- BGP 프로토콜 (경로 벡터)

외부 라우팅 프로토콜

서로 다른 종류의 자율 시스템에서 동작하는 라우터가 라우팅 정보를 교환할 수 있도록 해줌

이와 같이 종류가 다른 환경에서 동작하는 라우터를 일반적으로 게이트웨이라고 함

 

3. IP 프로토콜

네트워크 계층의 데이터 전송 프로토콜로 이용되는 IP

호스트 주소 표기, 패킷 분할 관한 기능 제공

단대단 형식의 오류 제어 x, 흐름 제어 x

 

- 비연결형 서비스

- 패킷 분할/병합 기능

- 데이터 체크섬은 제공하지 않고, 헤더 체크섬만 제공

- Best Effort 원칙에 따른 전송 기능 제공

 

Best Effort

최선만 다하고, 책임 x

여기서 책임은 상위계층 TCP가

 

IP 헤더의 구조

 

Identification(식별자 혹은 구분자)

패킷 분할과 관련된 정보 포함, 패킷 구분자

DF(Don't Fragment)

패킷이 분할되지 않도록 함

값이 1이면 패킷 분할 막음

병합 기능 없을 때 사용

MF(More Fragment)

분할된 패킷 전송할 때, 여러 개의 분할 패킷이 연속해서 전송

값을 1로 지정하여, 분할 패킷 뒤에 계속됨을 표시

Fragment Offset

분할된 패킷의 내용이 원래의 분할 전 데이터에서 위치하는 상대 주소 값

값은 8바이트의 배수

 

 

✅ 분할의 예

 

예) 380Byte 최대 128Byte라면 패킷을 어떻게 쪼갤 것?

 

Identification 우리는 하나

 

먼저, 128에서 헤더 20을 빼준다. 128-20=108Byte (실제 저장 가능)

다음으로 108/8 = 13... 이 나오고 13*8=104Byte

 

Packet Length는 104+ 20(헤더) = 124Byte

마지막 Packet Length는 380 - 104*3 = 68Byte의 여분

68 + 20(헤더) = 88Byte 

 

MF 1 1 1로 분할 패킷 뒤에 계속 이어짐을 표시

0은 마지막 패킷

 

Fragment Offset 

분할된 패킷의 내용이 원래의 분할된 데이터에 위치하는 상대주소값 8의 배수

0 13 26 39

 

 

DHCP 프로토콜

IP 주소 부족 등의 사유로 DHCP를 사용하여 자동으로 할당

컴퓨터 킬 때마다 자동으로 ip 주소 할당해 준다. 

반응형
저작자표시 (새창열림)

'🍞 Computer Science' 카테고리의 다른 글

[CS] 프로그래밍 패러다임에 대해서  (1) 2025.06.06
[CS] 디자인 패턴에 대해서  (2) 2025.06.04
[CS] 자료구조 총정리  (1) 2024.07.29
'🍞 Computer Science' 카테고리의 다른 글
  • [CS] 프로그래밍 패러다임에 대해서
  • [CS] 디자인 패턴에 대해서
  • [CS] 자료구조 총정리
박빵이
박빵이
칭찬은 박빵도 춤추게 한다
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (334)
      • 🍞 AI (1)
      • 🍞 Cloud·Infra (1)
        • AWS SAA (1)
        • Microsoft Azure (0)
      • 🍞 FrontEnd (89)
        • HTML · CSS (4)
        • JavaScript (16)
        • TypeScript (3)
        • React (45)
        • Next.js (1)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • SpringBoot (1)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • 글쓰기
    • Admin
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    위상정렬
    플로이드 와샬
    알고리즘
    코틀린
    길벗 블로깅 멘토
    react
    C++
    umc
    길벗 블로깅 멘토링
    level2
    코딩자율학습
    Java
    백준
    안드로이드
    JavaScript
    Android
    유니온파인드
    level1
    Front
    프로그래머스
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
박빵이
[데이터 통신] 7장 IP 프로토콜
상단으로

티스토리툴바