[책] 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.
