
•OSI 7 Layer가 나오기 전에 미국 국방부에서 개발된 프로토콜
•호환성, 장비 개발에 측면에서는 OSI 모델이 더 많이 사용되지만, 실질적인 통신에는 TCP/IP 모델이 사용된다.
흔히 인터넷 5계층이라 불리워서 그렇게 기억하고 있었는데,
정확한 이름으로는 TCP/IP 5계층이었다.
4계층이 먼저 등장했고, 시간이 지나며 TCP/IP Updated의 5계층 모델은 Link를 다시 두 레이어로 세분화하고, Internet 명칭을 Network로 다시 변경했다는 차이가 있다. TCP/IP Updated 모델은 현재 전 세계 표준으로 적용 중.
TCP와 IP는 별도의 네트워크 프로토콜이다.
IP 주소를 발견하면 TCP는 데이터 전달을 담당 -> 대체적으로 둘이 같이 쓰이기 때문에 TCP/IP 명칭이 붙은 것.
IP는 데이터가 전송되는 주소를 얻는다(IPv4,v6). TCP는 해당 IP주소를 찾으면 정확한 데이터 전달을 보장해준다. 그러나 TCP 독자적으로 활동할 수 없기 때문에 반드시 IP주소가 필요.
예시) IP = 스마트폰에 할당된 전화번호, TCP = 다른 사람과 통화할 수 있게 하는 모든 기술
[1계층 / 물리 계층 / Physical Layer]
- 물리적 연결(랜 케이블, 동축 케이블, 광케이블 등)을 위한 계층
- 데이터 전송 단위 : 비트 스트림(Bit Stream)
[2계층 / 데이터링크 계층 / Data Link Layer]
- 노드 간에 상호 통신에서의 오류제어, 흐름제어를 담당
- 데이터링크 계층은 MAC(물리 계층 연결)과 LLC(네트워크 계층 연결)로 나누어진다.
- MAC : NIC(Network Interface Card)마다 하나씩 가지고 있는 48bits의 고유한 주소로, 물리적 주소라고도 한다.
- 대표 장비 : 스위치, 브리지
- 데이터 전송 단위 : 프레임(Frame)
[3계층 / 네트워크 계층 / Network Layer]
- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할(라우팅)을 수행
- 경로를 찾기 위한 주소로 논리적 주소인 IP를 사용한다.
- 대표 장비 : 라우터
- 데이터 전송 단위 : 패킷(Packet)
[4계층 / 전송 계층 / Transport Layer]
- 통신의 양 끝단 사용자들의 신뢰성 있는 전송을 보장
- 프로세스를 식별하기 위한 Port Number를 사용한다.
- Port : [0-1023] 잘 알려진 포트 / [1024~49151] 등록된 포트 / [49152~65535] 동적 포트
- 데이터 전송 단위 : 세그먼트(Segment)
[5계층 / 세션 계층 / Session Layer]
- 동기화, 세션 연결/관리/종료 -> OS에서 지원
- 전송모드(양방향, 전이중, 반이중, 단방향)을 결정
- 데이터 전송 단위 : 데이터(Data)/메시지(Message)
[6계층 / 표현 계층 / Presentation Layer]
- 압축과 암호화를 담당
- 데이터 전송 단위 : 데이터(Data)/메시지(Message)
[7계층 / 응용 계층 / Application Layer]
- 각종 응용서비스 제공
- 데이터 전송 단위 : 데이터(Data)/메시지(Message)
유선 인터넷은 half/full duplex를 모두 지원하지만,
무선 인터넷은 아직까지는 half duplex를 사용한다.
이는 현재 상용중인 wi-fi 6의 경우에도 마찬가지. 해당 표준이 개발될 즈음에는 무선에 쓰이지 않았기 때문.
반이중화의 경우 주파수 영역을 나눈 FDD, 시간 영역을 나눈 TDD 방식을 사용하여 충돌을 피한다.

FDD : Frequency Division Duplex
주파수를 나누어서 Uplink, Downlink를 동시에 사용할 수 있도록 한다.
단, 주파수를 나누어 사용하기 때문에 한번에 전송가능한 양 또한 줄어든다.
TDD : Time Division Duplex
시간을 나누어서 Uplink 한번, Downlink 한번씩 돌아가며 사용할 수 있도록 한다.
기본적으로 주어진 주파수 bandwidth 를 온전히 쓸수 있지만 시간을 나누어 사용하기 때문에 연속적인 전송은 불가능.
TCP: 가상회선 패킷 교환 방식 -> 연결 지향+신뢰성 구축 -> 순서 보장
UDP: 데이터그램 패킷 교환 방식 -> 패킷 순서도, 정해진 회선도 없음.
TCP 연결 시 3-way handshake 과정을 통해 신뢰성을 구축하고 (서로 연결된 가상회선 확보) 통신한다.
UDP는 이런 과정이 없고 광범위하게 뿌려버리기 때문에 신뢰성을 가지지 못한다.

뭔가 복잡해보이지만 결국 이거다

1단계) SYN - 들려?
2단계) SYN + ACK - ㅇㅇ 야너두?
3단계) ACK - 야나두
★ TIME-WAIT를 가져야 함
-> 지연 패킷으로 인한 연결 오류 방지

1) 클라이언트에서 서버와의 연결 종료를 위해 서버에 FIN 패킷을 보내고 FIN_WAIT1 상태로 전환
2) 서버는 클라이언트로부터 FIN을 받고 응답 패킷 ACK을 보낸다. 상태는 CLOSE_WAIT로 전환
3) 서버가 통신이 끝나면, 즉 연결을 종료할 준비가 되면 클라이언트에게 FIN패킷을 보내고 LAST_WAIT 상태로 전환
4) 클라이언트는 확인 패킷 ACK을 보내고 TIME_WAIT 상태로 전환
LAN의 정의) ARP 프로토콜이 닿는 것이 LAN의 범위.
ARP 프로토콜) IP-> MAC 프로토콜.
보안, 성능 상의 이유로 Vlan 나눔 (서브넷 마스크)
보안: 하나에 다 연결됨
성능: 10개는 괜찮아도 1000개 트렁크 감당 가능?
라우터 -> L2 스위치를 사용하는 이유.
LAN과 다른 LAN 간의 통신이 인터넷임. (MAN, WAN)
이렇게 나누면 브로드캐스팅 영역이 나뉘기 때문에 L3으로 거슬러 올라가 통신이 필수
ㅡ
L2는 포트 1:1
허브는 브로드캐스팅
L7 스위치는 L5 L6 기능 포함. 보안 스위치라고도 부름
L4가 IP주소, PORT까지 읽어볼 수 있고
L7은 패킷내용까지 다 보고 검사가 가능해서.
아 L4부터 로드 밸런싱