1. 네트워크 구성도 살펴보기
- 네트워크는 크게 서비스를 받는 입장과 서비스를 제공하는 입장으로 나뉨
1-1. 홈 네트워크
- 물리적 연결 방법
- 무선 연결 : 무선 랜 카드와 무선 신호를 보낼 수 있는 매체(공기)가 필요
- 유선 연결 : 유선 랜 카드(이더넷 랜 카드), 랜 케이블(랜선)이 필요
1-2. 데이터 센터 네트워크
- 데이터 센터 네트워크는 안정적이고 빠른 대용량 서비스 제공을 목표로 구성
- 10G, 25G, 40G, 100G, 400G와 같은 고속 이더넷 기술이 사용
- 가상화 기술과 높은 대역폭을 요구하는 스케일 아웃(Scale-Out) 기반의 애플리케이션과 서비스가 등장하면서 2계층 구성인 스파인-리프(Spine-Leaf) 구조로 데이터 센터 네트워크가 변화됨
✍ 스케일 아웃(Scale-Out) : 장비를 추가해서 확장하는 방식
✍ 스파인-리프(Spine-Leaf) 구조 : 스파인과 리프라는 두 가지 스위칭 레이어로 구성된 데이터 센터 네트워크 토폴로지

과거 데이터 센터 네트워크 구성(왼쪽)과 현재 데이터 센터 네트워크 구성(오른쪽)의 변화
2. 프로토콜
프로토콜은 네트워크에서 통신할 때의 규약임
- 물리적 측면: 데이터 전송 매체, 신호 규약, 회선 규격 등. 이더넷이 널리 쓰임
- 논리적 측면 : 장치들끼리 통신하기 위한 프로토콜 규격. TCP/IP가 널리 쓰임
TCP/IP 프로토콜 스택은 총 4개 부분으로 나뉘는데, 물리 부분인 이더넷 외에 데이터가 목적지를 찾아가도록 해주는 네트워크 계층, 잘린 패킷을 데이터 형태로 잘 조합하도록 도와주는 전송 계층과 애플리케이션 계층으로 구성
✍ 일반적으로 TCP/IP는 프로토콜이라고 부르지 않고 프로토콜 스택이라고 부름

TCP/IP 프로토콜 스택
3. OSI 7계층과 TCP/IP
3-1. TCP/IP 프로토콜 스택

OSI 계층 모델은 7계층으로 이루어진 반면, TCP/IP 계층 모델은 4계층으로 구분함
4. OSI 7계층별 이해하기
4-1. 1계층(Physical Layer)
- 물리 계층으로 물리적 연결과 관련된 정보를 정의
- 1계층의 주요 장비
- 허브, 리피터 : 네트워크 통신을 중재하는 네트워크 장비
- 케이블, 커넥터 : 케이블 본체를 구성하는 요소
- 트랜시버 : 컴퓨터의 랜카드와 케이블을 연결하는 장비
- 탭 : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제해 줌
- 들어온 전기 신호를 그대로 잘 전달하는 것이 목적
- 전기 신호가 1계층 장비에 들어오면 이 전기 신호를 재생성하여 내보냄
- 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송
4-2. 2계층(Data Link Layer)
- 데이터 링크 계층으로 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리
- 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행
- 과거에는 신뢰할 수 없는 미디어를 이용해 통신하는 경우도 많아 에러를 탐지하고 고치거나 재전송했지만 이더넷 기반 네트워크는 에러를 탐지하는 역할만 수행
- 플로 컨트롤(Flow Control) : 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업

2계층의 플로 컨트롤
- 2계층의 주요 장비
- 네트워크 인터페이스 카드(NIC), 스위치
- 두 장비 모두 MAC 주소 이해 가능
- 네트워크 인터페이스 카드 동작 방식

- 전기 신호를 데이터 형태로 만듬
- 목적지 MAC 주소와 출발지 MAC 주소를 확인
- 네트워크 인터페이스 카드의 MAC 주소를 확인
- 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기
-
스위치의 동작 방식

-
스위치는 단말이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 습득(Address Learning)과정에서 알 수 있음
-
이 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩 해줌
4-3. 3계층(Network Layer)
- IP 주소와 같은 논리적인 주소가 정의
- IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소 부분과 호스트 주소 부분으로 나뉨
- 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있음
- 3계층의 주요 장비
- 라우터 : IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할을 함
4-4. 4계층(Transport Layer)
- 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 함
- 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아 주는 역할
- 시퀀스 번호(Sequence Number) : 패킷에 보내는 순서를 명시한 것
- ACK(Acknowledgement Number) : 받는 순서를 나타낸 것
- 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트 번호를 사용해 상위 애플리케이션을 구분
- 4계층의 주요 장비
- 로드 밸런서, 방화벽
- 포트 번호, 시퀀스, ACK 번호 정보를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행
4-5. 5계층(Session Layer)
- 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 수행
- TCP/IP 세션을 만들고 없애는 책임을 짐
- 에러로 중단된 통신에 대한 에러 복구와 재전송 수행
4-6. 6계층(Presentation Layer)
- 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행
- 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어줌
- MIME 인코딩, 암호화, 압축, 코드 변환과 같은 동작이 이루어짐
4-7. 7계층(Application Layer)
- 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행
- 네트워크 소프트웨어의 UI 부분이나 사용자 입/출력 부분을 정의
- 애플리케이션 계층의 대표적인 프로토콜 : FTP, SMTP, TELNET
5. 인캡슐레이션과 디캡슐레이션

-
패킷 기반 네트워크
- 데이터를 패킷이라는 작은 단위로 쪼개 보냄
- 데이터를 패킷으로 쪼개고 네트워크를 이용해 목적지로 보내고 받는 쪽에서 패킷을 다시 큰 데이터 형태로 결합해 사용
-
인캡슐레이션(Encapsulation)
- 데이터를 상위 계층에서 하위 계층으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할
- 네트워크 상황을 고려해 적절한 크기로 데이터를 쪼개고 네트워크 전송을 위한 정보를 헤더에 붙여 넣음
- 헤더 정보는 4계층, 3계층, 2계층에서 각각 자신이 필요한 정보를 비트 단위(0또는 1)로 사용
-
디캡슐레이션(Decapsulation)
- 데이터를 받는 하위 계층 쪽에서 상위 계층으로 데이터를 보내는 과정
- 2계층에서 송신자가 작성한 2계층 헤더에 포함된 정보를 확인하여 적힌 정보 중 목적지가 자신이 아니라면 패킷을 버리고 목적지가 맞다면 헤더 정보를 벗겨내고 올려보냄
- 3계층, 4계층도 위와 같이 동작, 최종적으로 데이터를 애플리케이션에 올려보냄
데이터를 인캡슐레이션하는 과정에서 헤더에 반드시 포함되어야 하는 2가지 정보
1. 현재 계층에서 정의하는 정보
- 4계층 : TCP에서는 시퀀스(Sequence), 애크(Acknowledgement)번호 필드
- 3계층 : 출발지, 도착지 IP 주소
- 2계층 : 출발지, 도착지 MAC 주소
2. 상위 프로토콜 지시자
- 4계층 : 포트 번호(Port Number)
- 3계층 : 프로토콜 번호(Protocol Number)
- 2계층 : 이더 타입(Ether Type)
5-1. MSS & MTU(데이터 크기 조절)
- MSS(Maximum Segment Size) : 네트워크에서 수용할 수 있는 크기를 역산정해 데이터가 4계층으로 내려올 때 적절한 크기로 쪼개질 수 있도록 유도하는데 이 값을 MSS라고 함
- MTU(Maximum Transmission Unit) : 네트워크에서 한 번에 보낼 수 있는 데이터 크기
- MSS는 4계층에서 가질 수 있는 최대 데이터 값, MTU 크기는 2계층에서 2계층 헤더들의 크기를 제외한 데이터 크기

MTU와 MSS의 차이