각 계층은 특정 계층이 변경되었을 때 다른 계층이 영향받지 않도록 설계됨
ex. TCP -> UDP 변경되더라도 인터넷 웹 브라우저를 다시 설치하는 것은 아님
애플리케이션 계층
- FTP, SMTP, HTTP, SSH, DNS 등의 응용 프로그램이 사용되는 프로토콜 계층
- 웹서비스, 이메일등 서비스를 실질적으로 사람들에게 제공하는 층
전송계층
- 송신자와 수신자를 연결하는 통신 서비스를 제공
- 연결자와 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
- 애플리케이션과 인터넷 계층 사이의 데이터 전달시 중계 역할
- TCP, UDP, QUIC
- TCP
- 패킷사이 순서 보장 / 연결 지향 프로토콜을 사용하여 신뢰성 구축 -> 가상회선 패킷 교환 방식 사용
- 연결과정 (3웨이 핸드쉐이크 -> SYN단계, SYN+ACK단계, ACK단계)
- 연결 해제 과정(4웨이 핸드쉐이크 -> FIN보내고 ACK, FIN 보내고 ACK 다시 받으면 해제 완료)
-> 두번째 FIN 이후 TIME_WAIT 하는 이유? -> 지연 패킷 발생 대비, 두 장치가 연결이 닫혔는지 확인하기 위함
- UDP - 순서 보장 X / 단순히 데이터만 넘겨줌.
인터넷 계층
- 장치로부터 받은 네트워크 패킷을 IP주소로 지정된 목적지로 전송하기위해 사용되는 계층
- IP, ARP, ICMP
- 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달 ( 비연결형 )
링크계층(네트워크 접근 계층)
- 실질적으로 데이터를 전달하며 장치간에 신호를 주고받는 '규칙'을 정하는 계층
- 유선 LAN(IEEE802.3)
- 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따르며 전이중화 통신(양쪽 장치가 동시에 송수신할 수 있는 방식)을 사용
- CSMA/CD
- 반이중화 통신
- 데이터를 보낸이후 충돌이 발생하면 일정 시간 이후 다시 보내는 방식
- 무선 LAN(IEEE802.11)
- 반이중화 통신 -> 한 방향으로만 통신할 수 있는 방식( 데이터를 보낸 후 수신 완료 전 까지 다시 보내지 못함)
- CSMA/CA
- 반이중화 통신중 하나로 장치에서 데이터를 보내기 전까지 캐리어 감지 등으로 사전에 충돌을 방지하는 방식
- 와이파이
- BSS( Basic Service Set )
- 기본 서비스 집합을 의미
- 단순 공유기로 접속하는게 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조를 말함
- 하나의 AP로만 구축되어 있기때문에 이동하며 네트워크 사용 불가
- ESS( Extended Service Set )
- 하나 이상의 연결된 BSS 그룹
- 여러 BSS가 모여 있는 것이기 때문에 다른 장소로 이동하면서도 네트워크 사용 가능
계층간 송수신 과정
- 애플리케이션 -> 전송 -> 인터넷 -> 링크 -> 링크(다른 네트워크) -> 인터넷 -> 전송 -> 애플리케이션
캡슐화 과정
-
계층을 거치며 캡슐화하여 전송
- ⬇ [ 데이터 ] - 애플리케이션 계층
- ⬇ [ TCP(L4) 헤더 | 데이터 ] - 전송 계층
- ⬇ [ IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 ] - 인터넷 계층
- ⬇ [ 프레임 헤더 | IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 | 프레임 헤더] - 링크 계층
비캡슐화 과정
PDU ( Protocol Data Unit )
- 네트워크 한 계층에서 다른 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU라고 함
- 제어 관련 정보들이 포함된'헤더', 데이터를 의미하는 '페이로드'로 구성되어 각 계층마다 부르는 명칭이 다름
- 애플리케이션 계층 - 메시지
- 전송 계층 - 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층 - 패킷
- 링크 계층 - 프레임(데이터링크 계층), 비트(물리 계층)
네트워크 기기
애플리케이션 계층 처리 기기
- L7 스위치 (로드 밸런서) - 서버의 부하를 분산하는 기기
-
IP, URL, 서버, 캐시, HTTP 헤더, 쿠키들을 기반으로 트래픽 분산
-
바이러스 등 필터링 기능
-
전송 계층을 처리하는 L4 스위치는 스트리밍에서 사용하지 못하며 메시지를 기반으로 인식하지못해 IP와 포트를 기반으로 트래픽을 분산함.
-
클라우드 서비스(AWS 등)에서 L7 스위치를 이용한 로드밸런싱을 ALB(Application Load Balancer) 컴포넌트로 하며, L4 스위치를 이용한 로드 밸런싱은 NLB( Network Load Balancer) 컴포넌트로 함.
-
헬스 체크
- 정상적인 서버 또는 비정상적인 서버를 판별하는데, 전송주기와 재전송 횟수등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
-
로드 밸런서를 이용한 서버 이중화 - 2대 이상의 서버를 기반으로 가상 IP를 제공하여 안정적인 서비스를 제공
인터넷 계층 처리 기기
- 라우터
- 여러개의 네트워크를 연결, 분할, 구분 시키는 역할
- L3 스위치
데이터 링크 계층 처리 기기
- L2 스위치
- 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리하며, 연결된 장치로부터 패킷이 왔을때 패킷 전송을 담당
- 브리지
- 두개의 근거리 통신망(LAN) 을 상호 접속할 수 있도록 하는 통신망 연결 장치
- 포트와 포트 사이의 다리 역할을 하고, 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리
- 통신망 범위 확장
- 서로 다른 LAN 등으로 이루어진 '하나의' 통신망을 구축할 때 쓰임
물리 계층 처리 기기
- NIC (Network Interface Card , LAN 카드)
- 리피터 - 들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치
- AP(Access Point) - 패킷을 복사하는 기기
IP 주소
ARP (Address Resolution Protocol)
- IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜
- ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환 <-> RARP로 MAC->IP
홉바이홉 통신
- IP 주소를 통해 통신하는 과정을 홉바이홉 통신이라고 함
- 라우팅 테이블
- 송신지에서 수신지 까지 도달하기 위해 사용됨
- 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트
- 게이트 웨이
- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어
IP 주소 체계
- IPv4
- 32비트를 8비트 단위로 점을 찍어 표기 (ex. 192.6.6.8)
- IPv6
- 64비트를 16비트 단위로 점을 찍어 표기(ex. fe80::672:c638:c45:24a2%20)
- DHCP ( Dynamic Host Configuration Protocol )
- IP 주소 및 기타 토인 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
- NAT ( Network Address Translation )
- 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정해 IP 주소를 다른 주소로 매핑하는 방법
- IPv4 주소 만으로는 수를 감당하지 못했는데, NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리 (외부 인터넷으로 나갈때는 공인 IP로 변경함)
- 보안성 상승
- 여러명이 동시에 인터넷에 접속하므로, 사용하는 호스트 숫자에 따라 접속 속도가 느려짐
HTTP
HTTP/2
- HTTP/2는 SPDY 프로토콜에서 파생된 HTTP/1.x 보다 지연 시간을 줄이고 응답시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤어 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
- 멀티 플렉싱 - 여러 개의 스트림을 사용하 송수신 함 -> 특정 스트림이 손실되었어도 다른 스트림에는 영향을 미치지 않음
- 헤더 압축 - 허프만 코딩으로 압축
- 서버 푸시 - HTTP/1.x 와 달리 요청이 없어도 서버에서 바로 리소스를 푸시할 수 있음(html 요청시 서버에서 html만 보내는게 아니라 요청을 받지 않아도 css 같이 보냄)
HTTPS
- 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰 할 수있는 HTTP 요청
- 통신 암호화
- SSL/TLS
- 전송 계층에서 보안을 제공하는 프로토콜
- 제 3자가 메시지를 도청하거나 변조하지 못하도록 함
- 인증 메커니즘 - CA에서 발급한 인증서를 기반으로 이루어짐
- 암호화 알고리즘
- 해싱 알고리즘 - SHA-256, SHA-384
- SHA-256
- 해시 함수의 결괏값이 256비트인 알고리즘이며 비트 코인을 비롯한 많은 블록체인 시스템에서도 사용
- SEO(Search Engine Optimization) - 검색엔진 최적화
- SEO가 높으면 검색 사이트에서 상단에 올라올 수 있다 -> HTTPS를 사용하면 순위가 높아짐
- SEO 관리
- 캐노니컬 설정 -> 사이트 링크에 canonical을 설정 (ex. <link rel="canonical" .../>
- 메타 설정 -> html 파일의 가장 윗부분인 메타를 잘 설정 해야함
- 페이지 속도 개선
- 사이트맵 관리
- HTTPS 구축 방법
- 직접 CA에서 구매한 인증서를 기반으로 HTTPS 서비스 구축
- 서버 앞단의 HTTPS를 제공하는 로드 밸런서두기
- 서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축