📗[CS/Network] 02. 네트워크 계층
계층 구조
- 특정 계층 변경 시 타 계층에 영향 X
애플리케이션 계층
- 응용 프로그램이 사용되는 프로토콜 계층이며 웹 서비스, 이메일 등 서비스를 실질적으로 사용자에게 제공
- 프로토콜 : FTP, HTTP, SSH, SMTP, DNS
- FTP : 장치간 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH : 네트워크 서비스를 안전하게 운영하기 위한 암호화 프토토콜
- HTTP : 웹 사이트 이용 시 사용되는 프로토콜
- SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS : 도메인 이름과 IP 주소를 매핑해주는 서버 → IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스
전송 계층
- 송신자, 수신자를 연결하는 통신 서비스 제공
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 애플리케이션 계층과 인터넷 계층 중계 역할
- 프로토콜 : TCP, UDP
- TCP
- 순서 보장
- 연결 지향(수신 여부 확인)
- 신뢰성 보장
- 가상회선 패킷 교환 방식
- 각 패킷에 가상회선 식별자 포함
- 모든 패킷을 전송하면 가상회선 해제
- 패킷들은 순서대로 도착
- UDP
- 순서 비보장
- 수신 여부 확인 X
- 데이터크램 패킷 교환 방식
- 패킷이 독립적으로 이동 → 분할된 여러 패킷이 서로 다른 경로로 전송
- 도착 순서가 다를 수 있음
- TCP
3-way handshake
TCP 연결 확립 과정 → 연결 확립으로 신뢰성 구축 후 데이터 전송 시작(UDP에는 X)
1️⃣ SYN : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN송신
SYN(SYNchronization) : 연결 요청 플래그
ISN(Initial Sequence Numbers) : 초기 네트워크 연결 시 할당된 32비트 고유 시퀀스 번호
2️⃣ SYN + ACK : 서버는 클라이언트의 SYN을 수신하고, 서버의 ISN을 보내며 승인 번호로 클라이언트의 ISN+1을 보냄
ACK(ACKnowledgement) : 응답 플래그
3️⃣ ACK : 클라이언트는 서버의 ISN+1한 값인 승인 번호를 담아 ACK를 보냄
4-way handshake
TCP 연결 해제 과정
1️⃣ 클라이언트가 연결을 닫을 때 FIN 설정된 세그먼트를 서버에 송신 & 클라이언트는FIN_WAIT_1상태로 들어감
2️⃣ 서버는 클라이언트로 ACK 설정된 승인 세그먼트 송신 & 서버는 CLOSE_WAIT 상태로 들어감 & 클라이언트가 ACK을 수신하면 FIN_WAIT_2 상태로 들어감.
3️⃣ 서버는 ACK을 보내고, 일정 시간 이후 FIN 세그먼트를 송신
4️⃣ 클라이언트는 TIME_WAIT 상태가 되고 & 다시 서버로 ACK을 송신 & 서버는 CLOSED 상태 & 클라이언트는 일정 시간 대기 후 연결이 닫히고 자원 연결 해제
💡TIME_WAIT 상태가 필요한 이유?
- 소켓이 바로 소멸되지 않고 일정 시간 유지하는 상태
- 지연 패킷 문제 예방, 두 장치가 연결이 닫혔는지 확인 등을 통해 데이터 무결성 유지
인터넷 계층(네트워크 계층)
- 장치로부터 받은 네트워크 패킷을 IP주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- 패킷을 수신해야 할 상대 주소를 지정하여 데이터 전달
- 비연결형
- 프로토콜 : IP, ICMP, ARP
링크 계층
- 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하고, 장치 간 신호를 주고받는 규칙을 정하는 계층
- 물리 계층
- 무선 LAN, 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
- 데이터링크 계층
- 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어 담당
유선 LAN(IEEE802.3)
- 유선 LAN을 이루는 이더넷은 IEE802.3 프로토콜을 따르며, 전이중화 통신 사용
- 전이중화 통신(Full Duplex)
- 양쪽 장치가 동시에 송수신이 가능한 방식
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
- 이전 유선 LAN에서 사용했던 반이중화 통신 방식
- 데이터를 보낸 이후 충돌 발생 시 일정 시간 이후 재전송
- 전이중화 통신(Full Duplex)
- 케이블
- 트위스트 페어 케이블 : 여덟 개의 구리선을 두 개씩 꼬아서 묶은 케이블 ex) UTP 케이블(쉴드 처리X), STP 케이블(쉴드 처리)
- 광섬유 케이블 : 레이저를 이용해서 통신 → 장거리, 고속 통신 가능
무선 LAN(IEEE802.11)
- 무선 LAN 장치는 수신과 송신에 같은 채널을 사용하므로 반이중화 통신 사용
- 반이중화 통신(Half Duplex)
- 양쪽 장치가 서로 통신이 가능하지만, 동시에 통신 X
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoide)
- 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식
- 데이터를 송신하기 전 무선 매체를 살핌
- 캐리어 감지 : 회선이 비어 있는지 판단
- IFS(Inter FrameSpace) : 랜덤 값을 기반으로 정해진 시간만큼 기다리며, 만약 무선 매체가 사용 중이면 간격을 늘리며 대기
- 데이터 송신
- 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식
- 반이중화 통신(Half Duplex)
- 무선 LAN을 이루는 주파수
- 주파수 대역
- 2.4GHz : 장애물에 강하지만, 전파 간섭이 발생
- 5GHz : 장애물에 약하지만, 상대적으로 깨끗한 전파 환경 구축
- 와이파이
- 무선 접속 장치(AP, 공유기)를 통해 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔 전자기기들이 무선 LAN 신호에 연결 가능하게 하는 기술
- BSS(Basic Service Set)
- 동일 BSS 내에 있는 AP와 장치들이 서로 통신이 가능한 구조
- 근거리 무선 통신 제공
- 사용자가 한 곳에서 다른 곳으로 이동하며 네트워크에 접속하는 것은 불가능
- ESS(Extended Service Set)
- 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신 제공
- 한 장소에서 다른 장소로 이동하며 중단 없이 네트워크에 계속 연결 가능
- 주파수 대역
이더넷 프레임
데이터 링크 계층에서 이더넷 프레임을 통해 전달받은 데이터의 에러 검출, 캡슐화
- Preamble : 이더넷 프레임이 시작
- SFD(Start Frame Delimiter) : 다음 바이트부터 MAC주소 필드가 시작됨
- DMAC, SMAC : 수신, 송신 MAC 주소
- MAC 주소 : 각 장치 내 네트워크에 연결하기 위한 장치(LAN카드) 식별 번호, 6바이트
- EtherType : 데이터 계층 위 계층인 IP 프로토콜 정의 ex) IPv4, IPv6
- Payload : 전달받은 데이터
- CRC : 에러 확인 비트
계층 간 데이터 송수신 과정
캡슐화 과정
헤더와 데이터를 하위 계층의 데이터 부분에 포함 시키고, 해당 계층의 헤더를 삽입하는 과정
비캡슐화 과정
하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 젝 ㅓ하는 과정
PDU(Protocol Data Unit)
네트워크의 계층간 데이터 전달 시 한 덩어리의 단위를 의미
제어 정보가 포함된 헤더 + 데이터를 의미하는 페이로드로 구성
- 애플리케이션 계층 : 메시지
- 전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층 : 패킷
- 링크 계층 : 프레임(데이터 링크 게층), 비트(물리 계층)