ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP 기본] TCP/IP 4계층
    기타 2022. 2. 16. 00:34
    반응형

    이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다.

    틀리거나 잘못된 정보가 있을 수 있습니다.

    댓글로 알려주시면 수정하도록 하겠습니다.


     

    이전 포스팅에서 TCP/IP 프로토콜에는 총 4개의 계층으로 나누어져 있다고 하였습니다.

     

    이번 포스팅에서는 4개 계층에 대하여 포스팅하고자 합니다.

     

    1. 애플리케이션 계층

    TCP/IP 프로토콜의 최상단 계층이며 사용자가 사용하는 애플리케이션에서 사용하는 통신의 움직임을 결정하는 계층입니다.

     

    즉 사용자가 사용하는 System에서 여러가지 서비스를 제공 또는 제공받는 부분을 담당하는 계층입니다.

     

    애플리케이션 계층의 대표되는 공통 애플리케이션으로는 FTP와 DNS 등이 있으며 HTTP 또한 이 계층에 포함됩니다.

     

    애플리케이션 계층은 Server와 Client로 이루어져 있으며 Server는 리소스를 제공하고 Client는 리소스를 제공받는 것을 의미 합니다.

     

    2. 트랜스포트 계층

    애플리케이션 계층의 하위 계층이며 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공을 담당 합니다.

     

    트랜스포트 계층에는 TCP(Transmission Control Protocol)와 UDP(User Data Protocol)이 존재 합니다.

     

    • TCP
      TCP는 연결형 서비스를 제공합니다. 연결형 서비스를 제공하기 위해 통신 시 논리적 경로를 결정하고 수립합니다.

      이러한 논리적 경로를 수립하기 위해 3-way-handshaking과정을 통해 2대의 컴퓨터의 논리적 경로를 수립하고 이 경로로 데이터의 전송이 이루어지고 전송이 끝나면 4-way-handshaking을 통해 해당 연결을 종료합니다.

      TCP는 신뢰성있는 데이터 전송을 담당하므로 전송되는 패킷에 안내 번호와 포트번호를 붙여 패킷을 관리 합니다.

      만약 전송된 패킷 중 특정 패킷의 유실이 발생하여 Client에서 해당 패킷의 전송 실패를 전달하면 Server는 해당 패킷을 다시 전송합니다.

      Client는 전송 받은 패킷의 안내 번호를 이용하여 패킷을 순서대로 조합하여 하나의 데이터를 받아볼 수 있습니다.

      TCP는 신뢰성을 보장하기 위해 논리적 경로를 수립한 뒤 해당 경로로 패킷을 전송 합니다.

      위 그림의 빨간 점선이 논리적 경로를 표시합니다.

      TCP는 신뢰성을 보장 하므로 위 그림 처럼 수신측에서 2번 패킷이 유실되어 받지 못하면 송신측에서는 2번 패킷을 재전송하여 신뢰성을 보장 합니다.

    UDP
    UDP는 TCP와 반대로 비연결형 서비스를 제공합니다. 비연결형 서비스를 제공하므로 논리적 경로 없이 패킷을 전송합니다.

    그러므로 패킷은 동일한 경로로 전송되는 것이 아닌 각기 다른 경로를 통해 Client에게 전송 됩니다.

    또한 패킷의 순서나 재전송과 같은 기능도 처리하지 않기으므로 데이터의 유실이 발생할 수 있습니다.

    그러나 TCP와는 반대로 속도가 빠르다는 장점이 있습니다.

    UDP의 경우 논리적 경로를 수입하지 않고 전송 하므로 정해진 경로없이 패킷이 전송 됩니다.

    UDP는 유실된 패킷에 대하여 재전송을 요청하거나 전달 받은 패킷의 순서를 맞추는 등의 별도의 작업을 진행하지 않습니다.

    3. 네트워크 계층

    네트워크 계층은 트랜스포트 계층에서 만들어진 패킷을 전송을 담당하는 계층으로 어떤 경로를 거쳐 상대방의 컴퓨터로 패킷을 보낼지 결정하는 계층입니다.

     

    인터넷에서 특정 컴퓨터와 통신을 하는 경우 본인의 컴퓨터와 상대방의 컴퓨터가 직접 연결되어 통신하는 것이 아닌 여러 컴퓨터를 거쳐서 상대방의 컴퓨터와 통신을 하게 됩니다.

    이러한 여러 경로들 중 특정 경로를 선택하여 하나의 길을 결정하는 것이 네트워크 계층의 역할 입니다.

     

    4. 링크 계층

    네트워크에 접속하는 하드웨어적인 면을 다루는 계층으로 링크 계층에서는 디바이스 드라이버, 네트워크 인터페이스 카드 케이블 규격 등 물리적으로 보이는 부분을 포함합니다.

     

    링크 계층은 하드웨어적인 부분 모두를 담당하는 계층입니다.

     

    5. HTTP 메시지 전송 과정

    HTTP 메시지를 전달하기 위해 송신측에서는 각 계층을 통과할 때 해당 계층에서 필요한 데이터를 헤더에 추가합니다.

     

    반대로 수신측에서는 각 계층을 통과할 때 해당 계층에서 사용한 헤더 데이터를 제거 합니다.

     

    이렇게 각 계층에서 필요한 정보를 추가 제거 하는 것을 캡슐화라고 합니다.

    반응형

    '기타' 카테고리의 다른 글

    [HTTP 기본] HTTP 메시지  (0) 2022.02.22
    [HTTP 기본] HTTP 메소드  (0) 2022.02.17
    [HTTP 기본] 간결한 HTTP 프로토콜  (0) 2022.02.17
    [HTTP 기본] Web 그리고 Network  (0) 2022.02.15
    [Log4j] Zero Day 취약점  (0) 2021.12.26

    댓글

Designed by Tistory.