TCP/IP protocol은 아래와 같다
각각의 layer는 세부적으로 깊게 배우겠지만 대략적인 역할들을 짚고 넘어가자
한개의 hop에서 다음 hop으로 넘어가는데 각각의 bit들의 움직임에 책임진다
(주소 개념이 없음)
이 계층은 전기적인 신호의 전송 기술도 포함한다
받는이 입장에서 갑자기 data를 보내면 받을 수 없으니 보내기 전에 다른걸 먼저 보내서 받는이가 준비를 할 수 있도록 하다가 110이라는 bit를 보면 이제부터 data구나 를 인지하도록 한다
한개의 hop에서 다음 hop으로 넘어가는데 각각의 frame들의 움직임을 책임진다
Data-link layer의 data를 Frame이라고 부른다
Framing, hop-to-hop delivery, Error control과 같은 역할을 한다
위 그림과 같이 header와 trailer를 붙이거나 떼고 header에는 Mac Address 정보나 control 정보 같은게 포함된다
Mac address를 data-link layer에서 붙이고, 떼기 때문에 data-link 계층의 입장에서 data에는 Mac Address는 포함되지 않는다
physical layer와 같이 flag 정보도 포함한다
그리고 Data-link 계층의 Mac 주소는 각각이 4bit * 12 자리로 48bit 주소이다
(IPv4는 32bit, IPv6는 128bit)
packet들을 source에서 destination으로 보내는데 책임이 있다
data에 header를 붙이는데 이 header에는 IP 주소가 포함되어 있어 host-to-host service를 제공한다
IP Address를 network layer에서 붙이고, 떼기 때문에 network 계층의 입장에서 data에는 IP Address는 포함되지 않는다
즉, network layer의 두가지 기능은 아래와 같다
1. host addressing
2. packet routing
- 위 그림에서 IP address는 바뀌지 않고 Mac Address는 계속 바뀐다는 것을 알 수 있음
network layer에서는 data를 packet이라고 부르고 IP에 의해 사용되는 것을 datagram이라고 부른다
datagram은 header와 payload(실제 data)로 나뉘고 header는 아래와 같이 가변적인 길이를 가진다 (20 byte ~ 60 byte)
message를 process에서 process로 전달하는 역할을 한다 (end-to-end)
Error, flow, congestion control과 process-to-process delievery를 수행한다
application 에서 받은 data를 segments로 나누고 header를 붙이는데 이 header에는 port number가 포함되어 있다
port number를 Transport layer에서 붙이고, 떼기 때문에 Transport 계층의 입장에서 data에는 Port number는 포함되지 않는다
가장 대표적인 UDP와 TCP에 대해서 간략히 알아보자
UDP: TCP에 비해서 상당히 간단하며 잘보냈는지 확인같은거는 하지 않는 connectionless 방식이다
TCP: 데이터가 잘 보냈는지 확인도 하는 connection-oriented 방식이다
TCP의 이런 추가 기능들 때문에 TCP header가 훨씬 복잡함
user에게 service를 제공하는것에 책임을 지는 것으로 주로 개인이 정의해서 쓴다
대표적으로 HTTP, FTP, SMTP, DHCP 등이 있다
url 주소와 같은 names 주소가 포함된다
Layered Architecture를 Protocol의 관점에서 보면 아래와 같다
결국 Addressing을 통해서 데이터를 전송하고 TCP/IP 5계층 에서는 4쌍의 주소체계게 필요하다