현재 포스트는 이후에 습득한 지식으로 인해 내용이 추가, 수정, 삭제될 수 있음
두 개 이상의 컴퓨터, 모바일 기기, 또는 다른 전자 장치들이 통신 매체를 통해 서로 연결되어 데이터나 자원을 공유할 수 있는 통신 시스템

아파트, 사무실 등 비교적 좁은 범위의 네트워크
WIFI 공유기를 통해 기기를 인터넷과 연결하거나 컴퓨터와 프린터를 연결하는 것 모두 LAN이다.
서로 떨어져 있는 LAN 사이를 전용선 등으로 연결한 광역 네트워크
인터넷이 가장 대표적인 WAN이며 모바일 데이터 네트워크인 4G, 5G 등도 WAN이다.
네트워크상에서 서버에게 서비스를 요청하는 장비
컴퓨터, 노트북, 핸드폰, 아이패드 등이 해당한다.
네트워크상에서 서비스를 제공하는 장비
공유기, 도메인 관리기(DNS), IP 할당기(DHCP), 시간관리기(NTP), 게이트웨이 등이 해당한다.
네트워크 통신 과정을 7개의 계층으로 분류하여, 각 계층이 특정 기능을 담당하도록 설계된 구조
네트워크 설계와 교육에 있어 중요한 교재로 사용되며, 다양한 네트워크 기술과 프로토콜의 이해를 위한 기반을 제공함

B라는 사람에게 A가 메일을 보내는 상황을 기준으로 설명

응용 계층(Application Layer)
브라우저, 메일 시스템 등의 프로그램들이 통신할 때 사용하는 적절한 프로토콜로 데이터를 변환해준다.
HTTP: 브라우저의 하이퍼 텍스트를 웹에 송수신하기 위한 프로토콜
SMTP: 이메일을 웹에 송신하기 위한 프로토콜
표현 계층(Presentation Layer)
데이터를 인코딩, 압축, 암호화, 복호화, 압축 해제, 디코딩 하는 계층
세션 계층(Session Layer)
네트워크 통신에서 세션의 생성, 관리, 종료를 담당하는 계층
네트워크 계층(Network Layer) => IP 주소 추가, 라우팅
송신 때 전송 계층에서 내려온 패킷에 지금 위치와 목적지의 IP주소를 추가 및 라우팅
수신 때 받은 패킷의 목적지 IP가 현재 위치의 IP와 같다면 전송 계층에 보내고 아니라면 목적지 IP로 라우팅
데이터 링크 계층(Data Link Layer) => MAC 주소 추가, 프레이밍
송신 때 실제 데이터 전송의 단위인 프레임으로 데이터를 캡슐화 하기 위해 프레이밍 후 전송
가장 가까운 MAC 주소 추가(도착지의 MAC 주소를 모르니까)
수신 때 프레임을 수신하여 오류를 검출하고 프레임 처리 및 네트워크 계층으로 전달
물리 계층(Physical Layer)
송신 때 디지털 신호를 아날로그 신호(전파, 전압, 빛 등)로 변환 후 전송
수신 때 아날로그 신호를 디지털 신호로 변환 후 수신

TCP/IP는 전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)을 포함하는 네트워크 통신 프로토콜 스위트이다.
스위트(Suite)
여러 개의 프로그램이나 프로토콜이 함께 모여 있는 패키지.
ex: 오피스 프로그램 스위트에 워드, 엑셀, 파워포인트
네트워크 기기 사이의 통신 규약을 담당하는 TCP, UDP, IP 등이 있고
응용 프로그램 사이의 통신 규약을 담당하는 HTTP, FTP, SMTP, DNS 등등으로 구성되어있다.
TCP는 데이터의 신뢰성 있는 전송을 관리하고, IP는 데이터 패킷의 라우팅을 담당한다.
이 프로토콜 스위트는 인터넷과 다른 네트워크에서 데이터를 안전하고 효율적으로 전송하는 표준을 정의한다.
TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이다.
연결 성립: 3-way Handshaking
TCP에서 연결을 성립하기 위해서 서버와 클라 사이에 3번의 패킷 교환으로 연결을 성립한다.
1. 클라 -> 서버: 접속을 요청하는 의미의 SYN(a) 패킷 전송
2. 서버 -> 클라: 수신 후 요청을 수락한다는 의미의 ACK(a+1)와 SYN(b)이 설정된 패킷 전송
3. 클라 -> 서버: 패킷 수신 후 ACK(b+1) 전송
연결 해제: 4-way Handshaking
TCP에서 연결을 해제하기 위해서 서버와 클라 사이에 4번의 패킷 교환으로 연결을 해제한다.
1. 클라 -> 서버: 접속을 해제하는 의미의 FIN 패킷 전송
2. 서버 -> 클라: 수신 후 요청을 확인했다는 의미의 ACK 패킷 전송
(데이터를 모두 보낼 때 까지 잠시 Time Out 상태)
3. 서버 -> 클라: 데이터를 모두 보내고 나면 연결이 종료됐다는 FIN 패킷을 전송
4. 클라 -> 서버: 패킷 수신 후 확인했다는 의미의 ACK 패킷 전송
TCP는 신뢰성 있는 데이터 전송을 필요로 하는 상황에 적합하고, UDP는 빠른 데이터 전송이 중요하거나 지연 시간을 최소화해야 하는 상황에 적합한 프로토콜이다.
연결:
TCP는 데이터 전송을 시작하기 전에 통신을 위한 연결을 설정하는 과정(3-way handshake)을 거친다. 이 과정을 통해 데이터 전송의 신뢰성을 보장.
UDP는 연결을 설정하고 해제하는 과정 없이 바로 데이터를 보내고 받을 수 있어 통신 과정이 빠름
신뢰성:
TCP는 데이터의 순서, 오류 검출, 재전송 등을 관리하며, 데이터가 손실되거나 순서가 뒤바뀌는 경우 이를 자동으로 처리하여 신뢰성을 보장.
UDP는 전송된 데이터 패킷의 도착을 확인하지 않으며, 패킷 손실이나 순서 변경이 발생해도 이를 자동으로 복구하지 않아 신뢰성이 보장되지 않음.
속도와 효율성:
TCP는 오류 복구, 순서 보장 등 추가적인 메커니즘으로 인해 UDP보다 상대적으로 느림.
UDP는 헤더가 간단하고, 연결 설정과 오류 복구 과정이 없기 때문에 TCP보다 전송 속도가 빠르며, 실시간 통신이나 스트리밍 서비스에 적합함.
사용
TCP는 웹 브라우징, 이메일 전송, 파일 전송 등 데이터의 정확성이 중요한 애플리케이션에 사용.
UDP는 실시간 비디오나 오디오 스트리밍, 온라인 게임, VoIP(음성 통신) 등 지연 시간이 중요한 애플리케이션에 사용.
전송 계층에서는 TCP, UDP 둘 중 어떤 규약을 사용할지와 어떤 포트에 전송할지를 결정한다.

TCP/IP는 인터넷의 초기 형태로 널리 사용되었던 네트워크 통신 프로토콜 스위트이고 OSI 7계층은 다양한 네트워크 시스템 간의 상호 운용성을 향상시키기 위한 표준화된 네트워크 아키텍처를 제공하기 위해 탄생했다.
TCP/IP는 실질적인 사용과 실용성에 중점을 둔 반면, OSI 모델은 네트워크 통신의 표준화와 이론적인 이해를 목표로 했다.
TCP/IP는 실제 인터넷 환경에서 널리 채택되고 사용되는 반면, OSI 모델은 네트워크 통신의 이해와 교육에 더 많이 활용되며, 모든 원칙이 실제 환경에 완전히 적용되는 것은 아니다.