[netwhat]Network Layer(OSI 7 layer)

leocodms·2021년 5월 4일
0

42seoul

목록 보기
9/10

Why layering?

Dealing with complex system.

  • modularization eases maintenance, updating of system.
    layering helps modularization.
  • explicit structure allows identification, relationship o fcomplex system's pieces.

Protocol stack. TCP/IP & OSI 7

TCP/IP : 5 layer, 실사용 stack

  • Physical layer
  • Datalink layer
  • Network layer
  • Transport layer
  • Application layer
    OSI 모델에서 presentation, session layer을 제외한 것과 동일하다.

OSI : 7 layer, 교육/연구 목적 stack

1. Physical layer

물리적 매체(허브, 라우터, 케이블..)로 데이터를 송신, 수신하는 역할을 한다.
PUD : bit

네트워크 기기들 사이의 데이터 전송을 하는 역할을 한다.
PUD : Frame
protocol : Ethernet, PPP, ATM, Lan, Wifi

ARP:Address Resolution Protocol
네트워크상에서 IP주소를 물리적 주소(MAC)으로 bind 시켜주는 프로토콜
목적지 IP는 알지만, 물리적 주소를 모를때 IP주소에 대한 MAC주소를 찾아주는 프로토콜

3. Network layer

기기에서 Datagram이 가는 경로를 설정해주는 역할을 한다.
Network layer function에는 forwarding과 routing이 있다.

  • forwarding: packet을 input link에서 적절한 output link로 이동시킨다.
  • routing: packet의 경로를 설정 한다.

네트워크 장치의 활동 영역

  • Data Plane
    트래픽을 전송하는 목적(forwarding과 관련된 계층)
    local, pre-router function
    라우터 입력 포트에 도착하는 데이터그램이 라우터 출력 포트로 전달되는 방법 제공을 목적으로 함다.
  • Control Plane
    데이터 영역으로 어떻게, 어떤 트래픽이 흐를지를 제어하는 목적(routing과 관련된 계층)
    network-wide logic

PUD : Packet
protocol : IP, ICMP, DHCP

라우터 : 패킷이 지나갈 최상의 경로를 찾아낸 뒤, 다른 망으로 패킷을 보내주는 역할을 한다.

DHCP : Dynamic Host Configuration Protocol(동적 호스트 설정 프로토콜)
IP를 필요로하는 컴퓨터에게 자동으로 IP를 할당해서 사용할 수 있도록 해주고, 사용하지 않으면 다른 컴퓨터가 주소를 사용할 수 있도록 할당하는 프로토콜.
신뢰적인 연결보다는 빠른 속도가 중요하기 때문에 UDP사용

ICMP : Internet Control Message Protocol
인터넷 메시지 제어 프로토콜로서 오류 메시지를 전송받는 데 주로 쓰인다. TCP.IP에서 패킷 처리 시 발생하는 문제를 알리며 주로 IP와 함꼐 동작한다.

4. Transport layer

end system(sender, receiver)간 제어와 에러를 관리한다. 패킷의 전송이 유효한지 확인하고, 전송에 실패한 패킷을 재전송하거나 무시한다.

Transport layer은 multiplexing과 demultiplexing을 지원한다.

  • demultiplexing : network layer로 부터 올라온 packet에서 source 주소와 destination주소 (IP address, port#)을 뽑아낸다.

    이때, 목적지의 주소(dest IP address & dest port number)만 알아내느냐, 목적지와 출발지의 주소 모두(dest IP address & dest port number & src IP address & src port number)로 UDP(connectionless demultiplexing)과 TCP(connection-oriented demultiplexing)으로 나뉜다.

    UDP는 목적지의 주소만 알기 때문에, 데이터가 손실되거나 오류가 있을 때 오류 수정및 패킷 재전송이 불가능하다.
    TCP는 목적지와 시작 주소를 모두 알기 때문에 데이터에 오류가 있을 시에, 오류 수정 및 재전송이 가능하다.

PUD : segment
protocol : TCP, UDP, RTP

5. Session layer

세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 한다.

세션 연결이 손실되는 경우, 연결 복구를 시도한다. 오랜 기간 연결이 되지 않으면 세션 계층 프로토콜은 연결을 닫고 다시 연결을 재개한다.

protocol : ISO-SP, RTCP, SMPP

6. Presentation layer

송신측과 수신측 사이에서 데이터의 형식을 정해준다. 받은 데이터를 코드 변환, 암호화, 압축의 과정을 통해 올바른 표준 방식으로 변환해준다.

protocol : JPG, MPEG

7. Application layer

사용자와 바로 연결되어 있어, 사용자로부터 정보를 받아 하위 계층으로 전송하고, 하위 계층에서 데이터를 받아 사용자에게 전달한다.

Application layer의 protocol은 다음과 같은 것을 정의 한다.

  • messege type(request, response)
  • message syntas
  • message semantics(메시지 필드의 의미)
  • rules for when and how processes send&respond to message

kernel part인 하위 계층과 소통하기 위해 Socket API를 사용한다.
process간 소통(Socet addressing) - IP + port number
host간 소통 - IP + MAC

protocol : DNS, HTTP, SMTP, FTP


각 계층 별 data unit을 정리해 둔 이미지이다!

전송한, 전송된 데이터는 위와 같은 순서를 거치며 각 계층에서 header을 추가, 처리하는 과정을 거친다.

profile
Backend Developer

0개의 댓글