tech.junha.kr

[책] TCP/IP가 보이는 그림책

들어가며

현역 시절 연등하며 읽었던 책, 복습겸 정리해보자.

주제

TCP/IP는 인터넷을 사용할 수 있도록 컴퓨터 네트워크를 구현하는 통신프로토콜이다.

목차

1. 용어 설명

2. TCP/IP 개요

3. 에플리케이션층

4. 트랜스포트층

5. 네트워크층

6. 데이터 링크층, 물리층

7. 라우팅

1. 용어 설명

네트워크

  • 케이블 등을 연결해, 다양한 데이터를 주고받을 수 있는 상태
  • 컴퓨터, 장비, 서버, 기기 등을 연결하여 정보를 교환할 수 있도록 하는 시스템

LAN, WAN, 인터넷

  • 네트워크 규모에 따라 나눌 수 있다.

프로토콜

  • 컴퓨터 네트워크에서 정보를 주고받을 때 사용되는 통신 규칙
  • 정보를 전송할 때 어떤 형식 및 순서로 전송할 것인지, 언제 전송을 중단할 것인지 등을 정의
  • 이를 통해 정보를 원활하게 송수신할 수 있도록 한다.

하이퍼텍스트(hypertext)

  • (하이퍼)링크 형식으로 정보를 비선형적으로 표현하는 방법

2. TCP/IP 개요

패킷 통신

  • 데이터를 일정한 크기로 분할해서 보내는 통신 방법
  • 작게 나눠진 데이터 하나 하나를 패킷이라고 한다.

데이터를 어떻게 주고 받을까?

  • 데이터 -> 신호로 변환 -> 전달 -> 데이터로 재변환
  • 위의 흐름을 통일시킨 절차를 베이스로하여 TCP/IP 구조가 탄생함
  • TCP/IP라는 공통된 구조로 전 세계 네트워트를 연결한 것이 인터넷임

통신 프로토콜

  • 가지각색의 기기가 서로 데이터를 주고 받기 위해선 공통된 메뉴얼이 필요
  • 이 메뉴얼을 프로토콜이라고 한다.
  • 현재 전 세계 공통 통신 프로토콜로 체택된 게 TCP/IP 임

TCP / IP

  • 데이터 송수신에 관한 일련의 작업을 하나로 모은 것
  • 실제로 하나의 프로토콜로 모든 것을 처리하긴 힘듬
  • TCP/IP는 여러개의 프로토콜로 이루어져 있음

계층화

  • TCP/IP는 송수신에 필요한 작업을 5개의 계층으로 나눠서 처리하고 있음
  • 계층마다 작업을 독립시키는 효과가 있음
  • 계층마다 다양한 프로토콜이 있음
  • 프로토콜 조합에 따라 다양하게 처리할 수 있음
  • 이 조합에는 TCP와 IP가 중심이 되므로 TCP/IP 라고 부름
  • 위로 갈수록 사용자와 가까운 작업, 아래로 갈수록 기계와 가까운 작업을 담당함

계층간 연락법

  • 데이터의 앞에는 '헤더', 뒤에는 '트레일러'라는 추가 정보를 추가함
  • 각 계층마다 헤더와 트레일러를 추가하고 이를 캡슐화하여 아래 계층으로 보냄
  • 추가된 헤더와 트레일러는 수신측의 동일한 계층에서만 사용한다.

3. 애플리케이션층

역할

  • 통신 서비스 실현
  • 애플리케이션에 맞춰 통신 수행
  • 사용자가 해석할 수 있는 정보를 제공하는 '서버와 클라이언트' 개념
  • 이에 반해, 하위계층들은 컴퓨터끼리 데이터를 전달하는 '송수신' 개념

애플리케이션 헤더

  • HTTP 프로토콜에서는 요청과 응답이라는 두 종류의 패킷이 있음
  • 이를 이용해 텍스트 형식으로 통신함
  • 단순 요청시에는 데이터없이 헤더만을 보냄

4. 트랜스포트층

역할

  • 통신을 실현
  • 데이터를 '수신측 애플리케이션'에 확실히 전달

포트

  • 포트 번호를 통해 상대 애플리케이션층의 어떤 프로토콜에게 전달할지 결정함
  • 에플리케이션층의 프로토콜 인덱스

TCP

  • 신뢰성, 정확성
  • 안전하고 확실하게 전달
  • WWW, 전자메일

확실히 전달하기 위해

  • 1. 6비트 컨트롤 플래그
    • 통신 상태를 전달함
    • TCP 헤더에 존재
  • 2. 데이터 순서를 나타내는 시퀀스 번호
    • 번호를 통한 데이터 구분
    • 송수신 중에 문제 발생시 세그먼트 재전송

UDP

  • 데이터를 빨리 전달할 것
  • IP 전화, 스트리밍

5. 네트워크층

역할

  • 수신처까지의 최적의 경로 결정
  • 수신측 컴퓨터까지 데이터를 전달

라우터

  • 네트워크 간을 연결해 패킷이 수신처에 전달될 때까지 길 안내하는 기기

ICMP

  • IP는 UDP와 같이 데이터 도착을 보장하지 않음
  • 이에 IP 프로토콜을 보조하는 프로토콜
  • 통신 상태를 송신처에 알려줌

서브넷

  • 규모가 큰 네트워크에서 관리 용이를 목적으로 네트워크를 세분화한 개념
  • 서브넷 마스크를 이용해 가상으로 작은 네트워크를 만듬

6. 데이터링크층

역할

  • 데이터 링크: 같은 규칙으로 연결된 기기들의 모음
  • 데이터 링크간의 차이 흡수
  • 네트워크 간의 차이 흡수

NIC

  • Network Interfae Card
  • 랜카드
  • 컴퓨터에서 네트워크로 가는 현관문
  • 제조 시에 할당된 고유 번호, MAC 주소가 있음

MAC 주소

  • 물리적 주소
  • 네트워크를 지나갈 때는 IP, 데이터 링크층 안으로 들어간 후에는 MAC 주소가 사용
  • 데이터 링크 내에서 수신하는 기기를 식별할 때 사용
  • ARP 프로토콜: IP 주소를 가지고 MAC 주소를 알아내기 위해 사용

이더넷

  • 가장 많이 보급되어 있는 데이터 링크
  • 네트워크 상의 모든 기기에게 신호를 보내고, 해당하는 기기만 받는 방법
  • 프레임을 주고 받음

기타 데이터 링크

  • 토큰링: 프레임이 충돌하지 않게, 권리를 얻은 컴퓨터만 송신(토큰 패싱)할 수 있는 데이터 링크
  • FDDI: 광섬유 케이블 사용한 토큰 패싱 방식
  • 무선랜, 블루투스

기기

  • 리피터: 신호 보정, 신호의 일그러짐 방지
  • 브리지: 신호 보정 + 서로 다른 두 개의 데이터 링크 연결
  • 허브: 하나의 신호를 여러 개의 케이블로 보내기 위해 신호 증폭
  • 스위칭 허브: MAC주소를 보고 특정 노드에만 신호 전달
arp -a

# 같은 네트워크에 있는 다른 컴퓨터의 MAC 주소를 알 수 있음

물리층

역할

  • 데이터 링크 안에서 신호가 흐르고 있는 부분
  • 케이블 등 통신 매체 속을 신호로 전달
  • 데이터를 신호로, 신호를 데이터로 변환
  • 비트열을 '전압의 변화' / '빛의 점멸' 신호로 변환
  • 변환 방법은 통신 매체에 의존하기에 프로토콜 존재하지 않음

7. 라우팅

역할

  • 패킷을 전송하는 작업
  • 전달된 패킷의 수신처를 확인하고, 다음 전송처를 결정
  • 수신처까지의 경로 결정

배경

  • 송신처와 수신처가 동일한 네트워크에 없음
  • 징검다리를 넘는 것 처럼 패킷은 여러개의 라우터를 경유해 수신처에 도착함
  • 각가의 라우터는 다음 전송처를 정하고 패킷을 전송함

라우팅 방법

  • 정적 라우팅: 수동으로 경로를 고정
  • 동적 라우팅: 라우터까리 정보 교환 후, 가장 적절한 경로를 사용
    • 목적지까지 홉수를 중시
    • 목적지까지 속도를 중시
  • 라우터는 MAC주소를 사용해 경유지를 지정한다.
  • IP주소는 수신처, MAC주소는 경유지를 나타낸다.

OSI 참조 모델

OSI and TCP/IP are frameworks for organizing and categorizing the functions involved in networking.

The OSI model

Provide a standardized way of describing the flow of data from application to physical transmission.

The TCP/IP model

It was developed to provide communication between different types of computer systems and was used as the basis for the creation of the Internet. The TCP/IP model is more focused on the practical aspects of data transfer, whereas the OSI model is more comprehensive.

In short, the OSI model provides a theoretical basis for networking while the TCP/IP model is more concerned with actual implementation.