ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP/IP
    네트워크 2022. 3. 9. 17:25

    <학습 전 든 생각>

    1. TCP/IP란 무엇일까?

    2. TCP/IP를 왜 배워야 할까? (7 계층도 있는데 왜 4 계층인가?)

    3. 캡슐화, 역캡슐화

    4. 헤더란? IP 헤더와 TCP 헤더는 별개의 것인가?

     

    # 프로토콜이란

    • 통신하기 위한 규약

     

    # 프로토콜의 종류

    • Http, Https, TCP, FTP, SSH 프로토콜, UDP 등

     

    # 패킷이란

    • 인터넷에서 전송되는 데이터의 기본 단위 (데이터 조각)
    • 데이터를 작은 조각들로 나눠서 보내는 것이라고 생각하면 된다.

     

     

    1. TCP/IP란 무엇일까?

    • 패킷 교환 방식에 따라 데이터를 전송할 때 사용하는 프로토콜 (규약)

     

    # 패킷 교환 방식이란

    • 어떤 회선을 독점하는 것이 아니라 패킷별로 최적의 경로를 선택해서 패킷을 전달하는 방식

     

    # IP (Internet Protocol)

    • 인터넷 상의 주소와 같다.
    • IP가 있어야 라우팅을 통해 데이터를 원하는 곳으로 보낼 수 있다.
    • 패킷들을 네트워크 망을 통해서 가장 효율적으로 보내는 역할을 한다. (도로의 표지판과 같은 역할)
    • 비신뢰성 - 패킷 전달 여부를 보증하지 않는다.
    • 비연결지향성 - 각 패킷은 독립적으로 전달되기 때문에 보낸 순서와 받는 순서가 다를 수 있는데 IP는 이를 교정할 수 없다.

     

    # IP 헤더

    • 버전, 출발지 IP 주소, 목적지 IP 주소 등이 담겨 있다.
    버전 헤더 길이 서비스 유형 전체 패킷 길이
    ID (일련번호) 조각 상태 조각의 위치
    TTL 프로토콜 헤더 체크섬
    출발지 IP 주소 (32비트)
    도착지 IP 주소 (32비트)

     

    # IP 패킷

    • IP 헤더 + 데이터 조각

     

    Q. IP가 있는데 TCP가 생긴 이유는 뭘까?

    만약 IP만 있다면 패킷들을 원하는 곳으로 효율적으로 보낼 수는 있겠지만 모든 패킷들을 온전하게 보낼 수 있다고는 할 수 없을 것입니다.

    왜냐하면 IP는 패킷 전달 여부를 보증하지 않기 때문입니다. 그렇기에 TCP가 함께 쓰이는 듯합니다.

     

    # TCP (Transmission Control Protocol)

    • IP 위에서 동작하는 프로토콜
    • 데이터의 전달을 보증하고 보낸 순서대로 받은 패킷을 정렬해준다.
    • 패킷을 순서대로 정렬하기 때문에 손상되거나 손실된 패킷이 있다면 재전송을 요청하여 받는다.
    • 연결형 통신에 사용

     

    # TCP 헤더

    • TCP로 전송할 때 붙이는 헤더
    출발지 포트 번호 (16비트) 목적지 포트 번호 (16비트)
    일련번호 (32비트)
    확인 응답 번호 (32비트)
    헤더 길이 (4비트) 예약 영역 (6비트) 코드 비트 (6비트) 윈도우 크기 (16비트)
    체크섬 (16비트) 긴급 포인터 (16비트)
    옵션

     

    # 세그먼트

    • TCP 헤더 + 데이터 조각

     

     

    2. TCP/IP 모델 (4 계층)

    OSI 7계층과 TCP/IP 4계층 그림

     

    이름부터 뭔가 어려워 보이고 익숙하지도 않은 계층들 때문에 학습을 시작하기 어려웠습니다..ㅎㅎ

    그런데 어떤 분의 블로그를 봤는데 말씀하시길 이렇게 계층을 나눈 것은 마치 우리의 택배가 전달되는 과정을 나눠놓은 것에 비유해서 설명해주셔서 왜 나눴는지 이해하기 훨씬 쉬웠습니다.

     

    우리는 택배를 어떤 목적지로 보내면 받는다라고만 느끼지만 실제로는 여러 단계로 나눠져 있고 이렇게 나눠져 있어서 중간에 어느 정도 진행된 건지 파악도 가능하고 분실이 되더라도 어디쯤에서 분실이 된 건지 알 수 있습니다.

    이렇게 생각하니 제가 기존에 가지고 있던 OSI 표준 모델에 대한 두려움은 사라지고 이 계층들이 각각 어떤 일을 하는지 알고 싶어 졌습니다.

     

    TCP/IP의 캡슐화와 역캡슐화 그림으로 설명

    # TCP/IP에서 캡슐화

    • 상위 계층의 통신 프로토콜 정보를 데이터에 추가(헤더)하여 하위 계층으로 전송하는 기술

     

    # TCP/IP에서 역캡슐화

    • 상위 계층의 통신 프로토콜에서 하위 계층에서 추가한 정보(헤더)와 데이터를 분리하는 기술
    • 각 계층은 송신 호스트가 추가한 헤더의 정보를 읽고 해당 프로토콜의 기능을 실현한 후 해당 헤더를 삭제한 데이터를 상위 계층에 전달

     

    Q. 각 계층에서 왜 헤더를 붙이는 걸까?

    TCP에서 역캡슐화할 때 데이터 조각에 손실이 있다면 그 계층의 헤더를 보고 송신자의 해당 계층에 재전송을 요청하는 용도로 쓰이는 게 아닐까 싶은데 정확하진 않아서 좀 더 찾아보고 적어두겠습니다!

     

    위의 답변이 맞다면 이것을 캡슐화와 연관 지어 생각해보면 헤더만을 봤을 때는 데이터 링크 계층을 나타내는 것은 없는데 그 역할을 트레일러가 하는 것은 아닐까?라는 생각이 들어서 찾아봤습니다.

     

    # 헤더와 트레일러의 차이점

    • 제어 정보가 앞에 붙으면 헤더, 뒤에 붙으면 트레일러
    • 제어 정보란 IP 주소, 포트 번호 등이 포함되어 있는 정보

     

     

    다음번에 TCP/IP의 각 계층에서는 어떤 작업들이 이루어지는 지에 대해 알아보겠습니다.

    그리고 TCP의 연결형 통신과 관련된 부분은 UDP와 비교하면서 알아보겠습니다.

     

     

    <참고 자료>

    도서 - <모두의 네트워크>

    https://better-together.tistory.com/110

     

    쉽게 이해하는 네트워크 11. 인터넷의 TCP/IP 프로토콜과 패킷 교환 방식

    패킷 교환 방식으로 데이터를 전송하는 인터넷 TCP/IP 모델의 핵심인 IP 프로토콜과 TCP 프로토콜은 전 세계에 존재하는 수만 가지의 LAN을 연결하여 인터넷을 구축하고 데이터를 전송하기 위한 규

    better-together.tistory.com

    https://better-together.tistory.com/89?category=887984 

     

    쉽게 이해하는 네트워크 8.인터넷의 TCP/IP 데이터 전송 과정(ft. 캡슐화와 역캡슐화)

    캡슐화와 역캡슐화로 데이터를 전송하는 TCP/IP 인터넷에서 데이터를 전송하는 과정 TCP/IP를 지원하는 인터넷에 연결된 컴퓨터, 즉 호스트는 TCP/IP의 4 계층의 프로토콜을 구현하는 소프트웨어만

    better-together.tistory.com

     

    댓글

Designed by Tistory.