눈팅하는 게임개발자 블로그
네트워크 이론 본문
OSI 7계층 모델
기본적으로 상위 계층은 하위 계층에 서비스를 요청하고.
하위 계층은 상위 계층에 서비스를 제공한다.
같은 계층 사이에는 프로토콜(동일한 계층 간 통신을 위한 미리 정의된 규정, 규약)이 존재하고
상, 하위 계층 사이에는 인터페이스가 존재한다.
1. 물리 계층(Physical Layer)
통신 케이블을 통해 물리적인 전기 신호를 사용하여 전송 단위는 비트이다.
2. 데이터 링크 계층(Data Link Layer)
물리적인 네트워크 사이의 Data 전송을 담당한다. 오류 감지와 오류 감지 시 이를 재전송하는 기능이 있다.
데이터 링크 계층에서는 MAC Address를 사용하며 전송 단위는 프레임이다.
3. 네트워크 계층(Network Layer)
전송 데이터를 목적지까지 전달하기 위해 경로를 찾아 전송하는 계층
경로를 찾는 것을 라우팅이라 하며 전송 단위는 패킷이다.
4. 전송 계층(Transport Layer)
데이터를 전송하며 송신측과 수신측의 전송 속도를 조절한다.
헤더에 송/수신지 포트 번호를 포함하여 전달한다. 대표적인 프로토콜로 TCP/UDP가 있으며
TCP는 양측을 연결하여 연결이 지속되는 동안 연결된 양측끼리 통신하며.
UDP는 양측을 연결하지 않고 메시지 형식으로 통신한다.
TCP의 경우 전송 단위는 세그먼트, UDP의 경우 전송 단위는 Datagram이다.
5. 세션 계층(Session Layer)
네트워크상 양측의 연결(보통 이 연결을 세션이라 칭한다.)을 관리하며 연결을 지속시킨다.(ID 세션 등)
6. 표현 계층(Presentation Layer)
응용 계층으로부터 전달받은 데이터를 전송하기 위해 인코딩, 디코딩을 하는 계층.
응용 계층에서 Data를 이해하여 사용할 수 있도록 변환한다.
7. 응용 계층(Application Layer)
사용자(또는 애플리케이션)가 네트워크에 접속할 수 있는 인터페이스를 지원한다.
사용자가 가시적으로 인식할 수 있는 유일한 계층이다.
프로토콜 헤더와 라우터 기능
프로토콜 header - 제어 정보.
동일 계층간의 약속된 정보를 포함하는 정보.
각 계층마다 데이터에 헤더를 붙여서 하위 계층으로 데이터를 전달한다.
전달 받은 수신 호스트 측에서는 자신 계층의 헤더만을 읽으며 문제가 없다면 상위 계층에 데이터를 전달.
라우터 - L3 스위치
라우터는 물리, 데이터링크, 네트워크 계층의 3개 계층만 가지고 있음.
송신, 수신은 라우터를 통로로써 이용한다.
거대한 라우터의 모임이 인터넷 그 자체가 되는 것.
IP주소, DNS, 라우팅
라우팅.
목적지가 211.223.201.30인 패킷이 라우터에 도착할 시
라우터는 두 개의 네트워크 1(211.223.201.*), 네트워크 2(211.223.202.*중
네트워크1을 경로로 선택한다.
DNS(Domain name System)
일반 사용자가 호스트 이름인 korea.co.kr에 서비스를 요청한다면
상위 계층(DNS 서버)에서 korea.co.kr을 IP 주소인 211.223.201.30으로 변환.
211.223.201.30에 서비스를 요청한다.
네트워크 계층은 IP 주소를 211.223.201.30으로 경로 설정.
TCP/IP 구조
응용 계층(Layer5, 6, 7) - 파일 전송, 전자 메일, 네임 서버, NFS, HTTP 등의 역할
전송 계층(Layer 4) - 연결형 TCP(Transmission Control Protocol), 비연결형 UDP(User Datagram Protocol)
네트워크 계층(L3) - IP / ICMP 프로토콜
네트워크 접속 계층(L2) - X.25, 이더넷, wifi, 위성 통신 등
물리 계층(L1) - LAN 선 등
L4까지는 운영체제 이하의 시스템 단위에서 내장되어 있음.
TCP/IP 환경
클라이언트(웹 브라우저)에서 TCP -> IP -> LAN 카드 -> 이더넷을 거쳐 송신.
HTTP(웹 서버)에서는 이더넷 -> LAN 카드 -> IP -> TCP를 거쳐 수신.
TCP/IP 프로토콜 헤더
IP 헤더와 TCP 헤더는 각 24바이트(6 * 4바이트)
송신 측에서는 해당 헤더를 데이터에 붙여서 하위 계층에 보내고.
수신 측에서는 해당 헤더만을 읽고 나머지 데이터 + 헤더를 상위 계층에 서비스해준다.
'공부한거 > 네트워크 프로그래밍' 카테고리의 다른 글
Socket Programming (0) | 2020.09.25 |
---|---|
TCP/IP 환경 (0) | 2020.09.25 |