네트워크란? 컴퓨터 간(ex. client-server. 컴퓨터 네트워크에서는 주로 host라고 부름)의 데이터 전송을 가능하게 하는 인프라 또는 매커니즘이다.
많은 서비스에서 네트워크는 필수적이다. 네트워크를 사용하는 이유는 크게 두가지가 있다.
1. 많은 유저들에게 서비스 제공. ex) 웹 서버
2. 큰 사이즈의 workload를 수행. ex) 온라인 비디오 스트리밍(넷플릭스, 유튜브등), 검색 엔진, 심지어 LLM 학습에도 네트워크가 사용됨.
시스템간 네트워크에는 layer가 존재한다. 각 layer 별로 맡는 역할이 다르고, 각각마다의 protocol(규약, 표준)이 있다. 그리고 계층마다의 operation은 middlebox는 L2, L3 정도에만 관여하고, 웬만한 operation은 엔드포인트의 커널에서 수행한다. layer별로 구분을 해야하기 때문에, 당연하겠지만 data 뿐 아니라, metadata를 가지고 있다. 즉, 이러한 metadata를 쓰는 방법이 protocol이라고 할 수 있음.
* 왜 protocol이 필요한가? endpoint마다 제원이나 모델이 다를 수 있겠지만, 같은 protocol을 따른다면 원활히 소통 가능하기 때문이다. ex) 주소 정보 등등
* 장점만 있는 것은 아니고, layer마다 protocol을 체크해야 하기 때문에, layer을 거칠 때마다 overhead 발생 가능.
컴퓨터네트워크 수업이 아니기 때문에, 계층별 역할을 간단하게 알아보겠다.
1. Physical Layer (L1)
하드웨어 단위에 적용되는 계층.
단위 : bit
2. Data Link Layer (L2)
두개의 인접한 디바이스끼리의 전송을 담당하는 계층. ex)내 PC - 라우터 간 통신
단위 : frame
프로토콜 종류 : 이더넷
3. Network Layer (L3)
로컬 단위를 넘어 호스트 간 통신을 담당하는 계층. 라우팅(포워딩) 담당. ex)내 PC - 넷플릭스 서버
단위 : packet
프로토콜 종류 : IP
4. Transport Layer (L4)
엔드포인트(application 또는 프로세스) 간의 통신을 담당하는 계층. L3과 차이점은 포트번호를 이용해 end-to-end를 담당하는 계층이라는 점이다. TCP의 경우에는 신뢰성 있는 전송을 보장한다.(3 way handshake)
단위 : segment
프로토콜 종류 : TCP(Transmission Control Protocol) , UDP(User Datagram Protocol)
5. Application Layer (L5)
transport layer을 바탕으로 추가 기능을 제공하는 layer.
프로토콜 종류 : SSL/TLS, HTTP, FTP

*그림 : https://velog.io/@euijoo3233/0223