[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/네트워크

[Network] 네트워크 모델

inu 2021. 3. 4. 18:10
반응형

TCP&IP 모델

  • 현재 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신 규약(프로토콜)의 모음
  • 1980년대에 공개되어 현재까지도 사용되고 있는 네트워크 모델이다.
  • 4계층 : 응용
  • 3계층 : 전송
  • 2계층 : 네트워크
  • 1계층 : 네트워크 인터페이스

OSI 7 계층

  • ISO에서 표준으로 지정한 모델로, 데이터 자체의 흐름을 구간별로 나눠놓은 네트워크 모델이다.
  • 7계층 : 응용, 여러가지 서비스를 제공하는 실질적인 프로그램, 사용자 인터페이스 (cf. http)
  • 6계층 : 표현, 데이터를 어떤 형식으로 전달할지 정하는 계층 ex) 그림파일(jpeg,png), 압축파일(zip, tar.gz), 일반 텍스트
  • 5계층 : 세션, 논리적인 연결을 정의하는 계층, 네트워크 장치들간의 연결 설정의 유지 동기화 등을 어떻게 수행할지를 정의
  • 4계층 : 전송, 포트주소를 이용해서 통신, 오류 제어(신뢰성 유무), 특정 프로그램 간의 통신(웹 브라우저 and 웹 서버), 운영체제 커널에 소프트웨어적으로 구현 (cf. TCP, UDP)
  • 3계층 : 네트워크, IP주소를 이용해서 통신, 전송 경로를 선택하여 어느 경로로 가는 것이 최선인지를 결정, 특정 네트워크를 찾아가는 역할, 운영체제 커널에 소프트웨어적으로 구현 (cf. IP, ICMP, ARP)
  • 2계층 : 데이터 링크, MAC주소를 이용해서 통신, 특정 네트워크에서 특정 PC를 찾아가는 역할, 랜카드에 하드웨어적으로 구현 (cf. 이더넷)
  • 1계층 : 물리, 상위 계층에서 캡슐화된 데이터를 bit 단위로 변경, 전기신호로 전송하고 받은 전기신호를 bit단위로 해석하는 역할, PHY칩에 하드웨어적으로 구현

두 모델 비교

  • 두 모델 모두 계층적으로 네트워크 모델을 정의한 것이다.
  • OSI 7은 논리적으로 역할을 분류한 것이고, TCP/IP는 프로토콜 기반으로 분류한 것이다.
  • OSI 7에 반해 TCP/IP가 좀 더 실무적인 성격이 강하다. (실질적으로 어떻게 작동하는지)

패킷

  • 패킷이란 네트워크 상에서 전달되는 데이터를 통칭하는 단어로 데이터의 형식화된 블록이다.
  • 패킷은 제어 정보와 사용자 데이터로 이루어지며, 사용자 데이터는 페이로드라고도 한다.
  • 패킷은 주로 헤더, 페이로드, 풋터로 구성되어 있는데 대부분의 경우 풋터는 사용되지 않는다. 헤더가 제어 정보를 담고, 페이 로드에 데이터를 담아 순차적으로 작동하게 된다. (이더넷은 풋터도 함께 제어 정보로 사용된다.)
  • 따라서 숫자가 높은 계층이 낮은 계층 패킷의 헤더로 작동할 수는 없다.
  • 캡슐화(Encapsulation) : 네트워크 통신(보낼 때)을 할 때 높은 계층에서부터 낮은 계층으로 프로토콜들을 생성하는 과정
  • 디캡슐화(Decapsulation) : 네트워크 통신(받을 때)을 할 때 낮은 계층에서부터 높은 계층으로 프로토콜들을 분석하는 과정

PDU

  • 각 계층의 제어 정보가 붙은 패킷을 PDU (Protocol Data Unit)라고 하는데, 이는 어떤 계층의 헤더까지 붙었는지에 따라 명칭이 다르다.
  • 세그먼트 : 데이터에 4계층까지 붙은 형태
  • 패킷 : 데이터에 3계층까지 붙은 형태 (총칭의 패킷과는 다른 의미)
  • 프레임 : 데이터에 2계층까지 붙은 형태

참고: https://www.youtube.com/watch?v=y9nlT52SAcg&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=5&t=735s

반응형

'💻 CS > 네트워크' 카테고리의 다른 글

[Network] ARP  (0) 2021.03.17
[Network] IP주소  (0) 2021.03.13
[Network] Ethernet 프로토콜  (0) 2021.03.08
[Network] 네트워크의 분류  (2) 2021.03.03
[Network] Port와 Port forwarding  (0) 2021.01.22