연결은 물리적 연결 논리적 연결 두가지가 있다.
그 중 논리적 연결은 A ---- B 연결된 것 같다고 한다. (결과적으론 데이터가 가지만 직접 연결X)
데이터는 layer가 내려갈수록 헤더가 붙는다. (뒤에 붙인걸 트레일러)
같은 계층끼리 통신하고 양방향이다.
TCP/IP Protocol Suite
Application (message)
Transport (TCP -> Segment, UDP -> Datagram)
Network (Packet or Datagram)
Datalink (frame)
Physical (bit)
데이터를 주고 받을 때는 바로 데이터가 전송되는 것이 아니라 계층을 하나하나 내려가면서 헤더를 붙이고 스위치와 라우터를 통해 상대방에게 전달하고 받은 상대방은 헤더를 뜯어가며 최종적으로 애플리케이션층까지 전달된다.
Hierarchical - 신분적 계층 / layer - 그냥 층
같은 peer끼리는 논리적으로 연결되어있다고 본다.
물리 계층 - 실제 물리적으로 연결 예를 들면 무선통신, 광통신 등 특정한 정보를 전송할 수 있음
데이터 링크 계층 - 데이터링크 층에서 데이터 통신은 Node to Node 로 이루어진다. LAN을 통해 이동할 수 있고 이동하는 단위를 hop이라고 부른다.
데이터링크층에서는 Local <-> Local 통신하는데 보통 1km 내외이고, 장거리 통신 (WAN)의 경우 간선과 간선으로 이루어지고 30~40km 정도 된다.
데이터링크는 헤더만 본다. 데이터 처리시 앞부분만 보고 뒤는 그냥 냅둔다.
네트워크 계층 - source -> destiniation 경로를 찾는 과정이 중요 -> best route를 찾아야 함
여기서 best route란 비용이 우선이 될 수도 있고, 최단거리가 될 수도 있다.
host to host 통신이며, 전세계적으로 유일한 주소(IP)가 필요하다.
IPv4 = 2^32 = 40억개 -> 현재 부족
IPv6 = 2^128 = 10^40 -> 이제는 사물인터넷들도 많이 IP주소 부여 가능
IP는 Connectionless Protocol로 전송까지만 수행하고 그 외에 오류제어 흐름제어 혼잡제어를 하지 않음
IP는 간단하다. 간단한 만큼 기능이 부족하여 보조 프로토콜이 같이 동작한다 그 예로는 ICMP 등이 있다.
전송계층 - 하나의 애플리케이션 프로그램 -> 프로세스, 부르는 이름 -> port number(~65535)
ex)192.168.0.1:80 -> 소켓 주소
End to End 통신, TCP는 복잡하고 Connection-oriented protocl 즉 연결 지향 프로토콜이다.
이는 아까 논리적 연결과 같이 직접 연결되진 않았지만, 연결된듯한 효과를 누리도록 만들어준다.
UDP는 Connectionless이다.
응용계층 - Process to Process로 응용 프로그램끼리 통신한다.
HTTP, SMTP, FTP, TELNET/SSL, SNMP, DNS가 있음
캡슐화 / 역캡슐화, source, destination address, 패킷은 페이로드 내요이 바뀌게 허용X
허용 가능한 용량 MTU보다 크게되면 예외적으로 잘라내야 한다 이를 fragmentation(조각화)라고 한다.
조각조각 자른것들에도 헤더를 달아주고 다시 reassemble해준다.
IPv4의 자르는 주체는 Source가 될수도 있고 Router가 될수도 있지만,
IPv6의 자르는 주체는 Source만 가능하다.
Routing : IP 주소로 best route를 찾는 것
Forwarding : 포워딩은 표를 기반으로 데이터를 넘겨준다. 여기서 표는 주기적으로 갱신된다.
Error Control(오류제어) : checksum(더하기를 이용해 오류를 찾음) 에러가 생겼음에도 검출하지 못할 때가 있음
Flow Control(흐름제어) : 보내는 사람과 받는 사람 속도가 같지 않음. 보내는 측이 받는 측의 속도를 고려하여 속도를 조정한다.(IP는 지원하지 않는다)
Congestion control(혼잡제어) : IP는 혼잡한 패킷을 버린다. 하지만 ICMP 보조 프로토콜은 보낸 사람에게 버린걸 알려준다(현재 혼잡하니 보내지 말라고)
IP - unreliable but bes effort 버릴수 있지만(MTU 초과할 경우) 웬만하면 간다.(보장은 못함)