OSI 7 Layer & TCP/IP

  • 거대한 네트워크 구조를 설명하는 것

Physical Layer

  • 디지털 신호를 아날로그 신호로 변환
  • 변환한 데이터를 전선을 통해 전달(1대1 연결 상황)

Data-Link Layer

  • 다수의 컴퓨터가 통신하기 위해서는 하나의 장비에 전선으로 연결해야 함
  • 이러한 장비가 허브
  • 허브로 연결된 컴퓨터들은 하나의 네트워크를 구성한 것
  • 하나의 네트워크 안에서 컴퓨터가 다른 컴퓨터로부터 데이터를 전송받게 될 때 어디서 어디까지가 어떤 컴퓨터에서 전송한 데이터인지 구별이 불가능
  • 이를 해결하기 위해 각 컴퓨터는 데이터에 구분자를 추가해 다른 컴퓨터에 전달하게 됨
  • 이것을 framing이라 하고 Data-Link Layer의 역할
  • 또, 하나의 네트워크 안에서 컴퓨터가 다른 컴퓨터로 데이터를 전송하기 위해서는 모든 컴퓨터(호스트)에 전송해야 하는 비효율적인 방법을 사용
  • 이를 해결하기 위해 데이터의 목적지를 확인해서 전달(switching)하는 스위치 장비가 등장
  • 이는 Network Interface Card에 구현되어 있음

Network Layer

  • 스위치에 컴퓨터들이 연결되고 이러한 네트워크가 두 개가 있을 때, 이를 연결해주는 것이 라우터
  • 이러한 환경에서 컴퓨터가 다른 네트워크로 데이터를 전송하기 위해서는 각 컴퓨터의 고유식별번호인 IP가 필요
  • Network Layer는 이를 위해 데이터에 목적지 IP를 추가 -> 신뢰성 있는 전달을 담당
  • 목적지가 추가된 데이터를 라우터가 전달하려고 할 때, 해당 IP가 어느 라우터에 연결되어 있는지 알 수 없음
  • 이를 위해 라우터끼리 자신들이 가지고 있는 IP대역을 공유하여 데이터를 주고 받을 수 있도록 함
  • 이것이 routing
  • 이는 OS의 커널에 구현되어 있음
  • 최대 전송 데이터 단위는 MTU(Maximum Transfer Unit) -> 전송하는 라우터의 MTU가 작다면 단편화 발생(TCP한정), 수신자가 조립

Transport Layer

  • 다른 컴퓨터로부터 데이터를 정상적으로 받아왔을 때, 이 데이터가 어떤 프로세스에 필요한 데이터인지 구별이 가능해야 함
  • 이를 프로세스의 식별자인 port 번호로 구분 가능
  • Transport Layer는 데이터에 port 번호를 추가
  • 데이터의 순차 전송과 송수신자 간의 데이터 처리 속도 차이 해결, 네트워크 데이터 처리 속도 해결 등의 역할도 수행
  • 이는 OS의 커널에 구현되어 있음
  • 최대 세그먼트 크기는 MSS(Maximum Segment Size) -> 전체 데이터를 MSS에 맞춰 세그먼트화

Session Layer & Presentation Layer

  • OSI 7 Layer에 포함되나 TCP/IP 모델에서는 Application Layer에 포함
  • session : 응용 프로그램간의 통신에서 연결을 관리
  • presentation : 응용 프로그램간의 통신에서 메세지 포맷을 관리(인코딩 - 디코딩, 암호화 - 복호화)

Application Layer

  • OS는 Transport Layer에서 제공하는 API를 활용해 사용자가 다른 컴퓨터와 통신할 수 있게 해줌
  • 이러한 프로그램을 만드는 것을 TCP/IP 소켓 프로그래밍이라 함 -> 데이터를 소켓에 write
  • 이를 이용해 데이터를 송수신하는 대표적인 프로토콜로 HTTP 등이 있음
  • 데이터 단위는 Stream(socket에 대해서)

 

'💻 Computer Science > Network' 카테고리의 다른 글

[Network] 네트워크 보안  (0) 2024.02.23
[Network] Unicast, Broadcast, Multicast  (0) 2024.02.23
[Network] Inline & Out of path & Proxy 구조  (0) 2024.02.21
[Network] TCP & UDP  (0) 2024.02.18
[Network] 기초 이론  (1) 2023.12.26