OSI 7계층, TCP/IP 4계층 + TCP, UDP 정리

이창윤·2022년 8월 25일
2
post-custom-banner

OSI 7계층이란?

Open Systems Interconnection, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명하기 위해 개발한 모델

계층 데이터 단위 (PDU)
7: 응용 계층
(Application Layer)
메시지
(Message)
6: 표현 계층
(Presentation Layer)
5: 세션 계층
(Session Layer)
4: 전송 계층
(Transport Layer)
TCP - 세그먼트(Segment)
UDP - 데이터그램(Datagram)
3: 네트워크 계층
(Network Layer)
패킷
(Packet)
2: 데이터 링크 계층
(Data Link Layer)
프레임
(Frame)
1: 물리 계층
(Physical Layer)
비트
(Bit)

PDU: Protocol data unit, 계층에서 처리하는 데이터의 단위
헤더와 페이로드(Payload)로 구성되어있다.

7. 응용 계층 (Application Layer)

  • 네트워크 자원에 사용자가 접근하는 방법을 제공하는 계층
  • 최종적으로 사용자가 볼 수 있는 유일한 계층, 직접적으로 사용자와 상호작용한다.
  • ex) 크롬, 사파리 등 웹 브라우저, MS Office와 같은 응용 프로그램
  • 프로토콜: HTTP, Telnet, DHCP, DNS, FTP

6. 표현 계층 (Presentation Layer)

  • 데이터의 변환 작업(인코딩, 디코딩, 암호화)을 하는 계층
  • 응용 계층의 데이터 표현에서 독립적인 부분을 나타낸다.
  • 프로토콜: ASCII, MPEG, JPEG, EBCDIC

5. 세션 계층 (Session Layer)

  • 응용 프로그램 간의 연결을 지원하는 계층
  • 사용자와 서버 간에 대화가 필요하면 세션을 만드는 작업을 처리한다.
  • 운영체제에 의해 세션 설정, 유지, 종료, 전송 중단시 복구 등을 할 수 있다.
  • 프로토콜: SSH, TLS

4. 전송 계층 (Transport Layer)

  • 서비스를 구분하고 데이터의 전송 방식을 담당하는 계층
  • 포트(Port)번호를 사용하여 최종 도착지인 프로세스까지 데이터가 도달하게 한다.
  • 보낼 데이터의 용량, 속도, 목적지 등을 처리한다.
  • 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 한다.
  • 프로토콜: TCP, UDP, ARP

3. 네트워크 계층 (Network Layer)

  • 서로 다른 두 네트워크 간의 데이터 전송을 담당한다.
  • 데이터에 논리적 주소인 IP 주소를 부여하고 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)을 한다.
  • 데이터를 연결된 다른 네트워크로 전달함으로써 인터넷이 가능하게 만드는 계층이다.
  • 프로토콜: IP, ICMP, IGMP
  • 컴퓨터와 컴퓨터간 신뢰성있는 전송을 보장하기 위한 계층
  • 물리 계층을 통해 송수신되는 정보의 오류를 검출하고 흐름을 관리한다.
  • 데이터에 컴퓨터의 물리적 주소인 MAC 주소를 부여해서 출처를 알 수 있게한다.
  • 동일한 네트워크 내에서의 데이터 전송을 담당한다.(Ethernet)
  • 프로토콜: MAC, PPP, HDLC, etc...

1. 물리 계층 (Physical Layer)

  • 네트워크의 하드웨어 전송 기술로 구성
  • 전기적, 기계적, 기능적인 특성을 이용하여 통신 케이블로 데이터를 전송한다.
  • 단지 데이터를 전달만 한다.
  • 프로토콜: Ethernet, RS-232C

장점

  • 통신이 일어나는 과정을 단계별로 파악하기 쉽다.
  • 특정 계층에서 이상이 생기면 해당 계층만 고치면 된다.

캡슐화 & 역캡슐화

캡슐화 (Encapsulation)

송신 측(상위 계층)에서 응용 계층부터 순서대로 각 계층에서 데이터에 헤더를 추가하고 아래 계층으로 보내는 과정

헤더(Header): 데이터의 앞 부분에 위치하는 데이터 전송에 필요한 정보

  • 데이터 링크 계층까지 캡슐화 된 데이터는 최종적으로 전기 신호로 변환돼서 수신측에 도착한다.

역캡슐화 (Decapsulation)

수신 측에서 물리 계층부터 순서대로 데이터의 헤더를 제거하고 위 계층으로 전달하는 과정

캡슐화와 역캡슐화의 필요성

  • 독립성 유지: 다른 모듈에 미치는 영향을 최소화할 수 있다.
  • 계층별 기능 수행: 목적에 부합하는 기능만 수행한다.
  • 호환성 유지: 네트워크 동일 계층 간 호환성 유지

TCP/IP 4계층이란?

현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 모음

  • OSI 모델을 기반으로 실제 사용될 수 있도록 단순화된 모델

4. Application Layer

  • OSI 계층에서 5,6,7 계층에 해당한다.
  • 사용자가 응용프로그램과 소통할 수 있게 UI를 제공한다.
  • TCP/IP 기반의 응용 프로그램을 구분할 때 사용한다.

    TCP/IP 소켓 프로그래밍 (네트워크 프로그래망): 운영체제의 전송 계층에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것

3. Transport Layer

  • OSI 계층에서 전송 계층에 해당한다.
  • 데이터의 송수신을 담당하고 통신 노드 간의 연결을 제어한다.
  • 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송기능을 제공한다.

대표적인 프로토콜은 TCPUDP가 있다.

2. Internet Layer

  • OSI 7계층의 네트워크 계층에 해당한다.
  • 논리적 주소인 IP를 이용한 노드간 데이터 전송과 라우팅 기능을 담당한다.

1. Network Access Layer

  • OSI 계층의 1,2 계층에 해당한다.
  • 운영체제의 하드웨어적인 요소와 관련되는 모든 것을 지원하는 계층이다.
  • 물리적으로 데이터가 네트워크를 통해 어떻게 전송되는지 정의한다.
  • 에러 검출 기능과 패킷의 프레임화 기능을 담당한다.

OSI 모델 vs TCP/IP 모델

  • TCP/IP가 OSI 모델보다 먼저 개발되었다.
  • 두 모델 모두 계층형이지만 서로의 계층이 정확히 일치하지는 않는다.
  • TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 높지만 OSI모델은 실제로 구현되는 예가 거의 없어서 신뢰성이 낮다.
  • OSI 모델은 장비 개발과 통신 자체를 어떻게 표준으로 잡을지 개념적으로 사용되는 반면 실질적인 통신 자체는 TCP/IP 프로토콜을 사용한다.

TCP (Transmission Control Protocol)

연결형 서비스

  • 가상 회선 방식을 제공
  • 3-way handshaking 과정을 통해 연결을 설정
  • 4-way handshaking을 통해 연결을 해제

흐름 제어(Flow control)

데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지

  • 수신자도 Window Size를 통해 수신량을 정할 수 있다.

혼잡 제어(Congestion control)

네트워크 내의 패킷 수가 넘치지 않도록 방지

  • 데이터의 소통량이 과하면 패킷을 조금만 전송해서 붕괴현상을 막는다.

신뢰성 높은 전송

  • Dupack-based retransmission: ACK 값이 중복으로 올 경우 패킷 이상을 감지하고 재전송 요청
  • Timeout-based retransmission: 일정시간동안 ACK 값이 수신을 못할 경우 재전송 요청

TCP 헤더 정보

필드 내용 크기
송수신자의 포트 번호 TCP로 연결되는 가상 회선 양단의 송수신 프로세스에 할당되는 포트 주소 16
시퀀스 번호
(Sequence Number)
송신자가 지정하는 순서 번호, 전송되는 바이트 수를 기준으로 증가
SYN = 1 : 초기 시퀀스 번호가 된다. ACK 번호는 이 값에 1을 더한 값
SYN = 0 : 현재 세션의 이 세그먼트 데이터의 최초 바이트 값의 누적 시퀀스 번호
32
응답 번호
(ACK Number)
수신 프로세스가 제대로 수신한 바이트의 수를 응답하기 위해 사용 32
데이터 오프셋
(Data Offset)
TCP 세그먼트의 시작 위치를 기준으로 데이터의 시작 위치를 표현(TCP 헤더의 크기) 4
예약 필드 사용을 하지 않지만 나중을 위한 예약 필드이며 0으로 채워져야한다. 6
제어 비트 SYN, ACK, FIN 등의 제어 번호 6
윈도우 크기
(Window Size)
수신 윈도우의 버퍼 크기를 지정할 때 사용. 0이면 송신 프로세스의 전송 중지 16
체크섬 (Checksum) TCP 세그먼트에 포함되는 프로토콜 헤더와 데이터에 대한 오류 검출 용도 16
긴급 위치
(Urgent Pointer)
긴급 데이터를 처리하기 위함, URG 플래그 비트가 지정된 경우에만 유효 16

제어 비트(Flag Bit) 정보

ACK

  • 응답 번호 필드가 유효한지 설정: 송신측에 수신측에서 긍정적인 응답으로 보낸다.(패킷이 도착)
  • 클라이언트가 보낸 최초의 SYN 패킷 이후 전송되는 모든 패킷은 이 플래그가 설정되어야 한다.

SYN

  • 동기화 시퀀스 번호
  • 양쪽이 보낸 최초의 패킷에만 이 플래그가 설정되어야 한다.

UDP (User Datagram Protocol)

  • 비연결형 서비스로 데이터그램 방식을 제공
  • 연결형이 아니라서 데이터를 주고받을 때 신호절차가 필요없고 서버 소켓과 클라이언트 소켓의 구분이 없다.
  • 신뢰성이 낮지만 속도가 빠르다.

UDP 헤더 정보

필드 내용 크기
송신자 포트 번호 데이터를 보내는 어플리케이션의 포트 번호 16
수신자 포트 번호 데이터를 받을 어플리케이션의 포트 번호 16
데이터 길이 UDP헤더와 데이터의 총 길이 16
체크섬 (Checksum) 데이터 오류 검사에 사용 16

공통점

  • 포트 번호를 이용하여 주소를 지정한다.
  • 데이터 오류 검사를 위한 체크섬이 헤더에 존재한다.

차이점

  • TCP와 UDP는 신뢰성과 연속성 측면에서 상충 관계(trade off)에 있다.
    • TCP: 신뢰성 ⬆ 연속성 ⬇
    • UDP: 신뢰성 ⬇ 연속성 ⬆
  • TCP는 데이터의 경계를 구분하지 않는 반면 UDP는 데이터의 경계를 구분한다.
  • TCP는 신뢰성있는 데이터 전송을 보장하지만 UDP는 재전송이 불가능해서 신뢰성이 떨어진다.
  • TCP는 일대일 양방향 통신이라서 멀티캐스팅 또는 브로드캐스팅이 불가능하지만 UDP는 가능하다.

참고 및 출처

OSI 7계층과 TCP/IP 4계층
TCP와 UDP의 차이
TCP와 UDP 차이 그리고 TCP/IP

post-custom-banner

0개의 댓글