////
Search

1. 네트워크의 큰 그림

네트워크의 기본 구조

네트워크는 노드간선으로 이루어진 자료구조라는 점에서 그래프 형태라고 할 수 있음
네트워크 토폴로지(Network Topology) : 네트워크 상에서 노드와 노드 사이의 연결 구조
노드가 어떻게 연결되고 배치되느냐에 따라 망형, 트리형, 링형 등의 유형으로 분류
호스트(Host)
네트워크의 가장자리에 위치하면서 네트워크를 통해 주고받는 정보를 최초로 송신하고 수신하는 노드. 우리가 흔히 접하는 대부분의 네트워크 기기
클라이언트(Client) : 요청(Request)을 보내는 호스트
서버(Server) : 응답(Response)을 보내는 호스트
EX : 웹 브라우저를 통해 구글 홈페이지에 접속한 경우 → 노트북과 구글의 서버 컴퓨터가 각각 호스트로서 정보를 주고받은 것
1.
노트북이 구글의 서버 컴퓨터에게 웹 페이지를 가져다 달라는 요청 전송
2.
구글의 서버 컴퓨터가 노트북에게 웹 페이지로 응답
중간 노드 : 가장자리에 위치한 호스트가 주고받은 정보들을 원하는 수신지까지 안정적으로 전송하는 역할
EX : 스위치, 라우터, 공유기

LAN과 WAN

전 세계에 여러 개의 네트워크로 나뉘어져 있음 : 규모에 따라 LAN과 WAN으로 구분
LAN(Local Area Network) : 근거리 네트워크
비교적 가까운 거리(가정, 기업)를 연결하는 한정된 공간에서의 네트워크
공유기를 통해 모든 네트워크 기기가 통신하고 있다면, LAN이 공유기를 기준으로 구축되었다고 할 수 있음
즉, 해당 공유기와 연결된 네트워크 기기들은 모두 같은 네트워크(LAN)에 속해 있다고 인식
WAN(Wide Area Network) : 원거리 네트워크
WAN을 통해 LAN 간 통신이 이뤄짐
인터넷을 가능하게 만드는 네트워크
ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축하고 관리
EX : KT, LG U+, SK

패킷 교환 네트워크

네트워크를 통해 주고받는 데이터는 한 번에 송수신되지 않고, 여러 데이터로 쪼개져서 송수신이 이뤄짐
패킷(Packet) : 네트워크를 통해 송수신되는 데이터의 단위
오늘날의 네트워크는 패킷 단위로 주고받는 정보를 쪼개서 송수신하고 수신지에서 재조립하며 패킷을 주고받는 패킷 교환 네트워크가 대부분
구성 : 페이로드(Payload)헤더(Header) + 트레일러(Trailer)
페이로드 : 패킷에서 송수신하고자 하는 데이터
헤더, 트레일러 : 패킷에 추가되는 부가 정보

주소의 개념과 전송 방식

네트워크 상의 두 호스트가 패킷을 주고 받으려면(정보를 주고 받으려면), 서로를 특정할 수 있는 정보(주소)가 필요
주소(Address) : 패킷의 헤더에 명시되는 정보 EX : IP주소, MAC주소
주소를 바탕으로 다양한 수신지 유형을 지정해 패킷을 송신 가능
유니캐스트(Unicast) : 송신지와 수신지가 일대일로 메시지를 주고받는 전송 방식(수신지를 특정 호스트 하나로 지정)
브로드캐스트(Broadcast) : 네트워크상의 모든 호스트에게 메시지를 전송하는 방식(네트워크 내 모든 호스트로 수신지를 지정)
브로드캐스트 도메인(Broadcast Domain) : 브로드캐스트가 전송되는 범위 호스트가 같은 브로드캐스트 도메인에 속해 있다면, 같은 LAN에 속해 있다고 간주
이 밖에도 다양한 송수신 방식이 존재하지만, 유니캐스트와 브로드캐스트가 가장 자주 언급됨

두 호스트가 패킷을 주고받는 과정

네트워크 내의 호스트는 서로가 주고받을 내용(패킷)을 이해할 수 있어야 하고, 이를 올바르게 주고받을 수 있어야 함

프로토콜

서로 다른 LAN에 속한 두 호스트가 패킷을 주고받을 때네트워크 장비를 거치게 됨. 이때 호스트들과 네트워크 장비들이 서로의 패킷을 이해하기 위해서정해진 규칙(프로토콜)이 필요
프로토콜(Protocol) : 네트워크 통신을 위한 노드 간의 약속된 규칙
중요한 점 : 프로토콜마다 목적특징이 다르다는 점
예시
IP : 네트워크 간의 주소를 지정한다는 목적을 지닌 프로토콜
ARP : IP 주소와 MAC 주소를 대응시킨다는 목적을 지닌 프로토콜
HTTPS : HTTP에 비해 보안상 안전
TCP : UDP에 비해 신뢰성이 높음
각각 목적특징이 다른 프로토콜로 구성된 패킷 내용 또한 달라질 수 있음
패킷을 구성하는 프로토콜의 목적특징에 따라 그에 걸맞는 패킷 헤더를 가짐
따라서, 각 프로토콜의 목적특징을 이해하기 위해서는 프로토콜의 패킷 헤더를 분석해보는 것이 좋음
매우 많은 종류의 프로토콜이 존재하지만, 개발자가 필수적으로 알아야 할 기본적인 프로토콜은 어느정도 정해져있음

네트워크 참조 모델

호스트 간에 패킷을 주고받는 과정은 택배를 주고받는 과정과 비슷
택배를 주고받는 과정에는 정형화된 순서가 있듯이, 패킷을 주고받는 과정 또한 정형화된 순서가 있으며 이를 계층적으로 표현 가능
네트워크 참조 모델(Network Reference Model) : 통신이 이뤄지는 단계를 계층적으로 표현한 것
패킷 송신측은 상위 계층에서 하위 계층으로 정보를 보내고, 패킷 수신측은 하위 계층에서 상위 계층으로 정보를 받아들임
각 계층별 목적에 맞는 프로토콜과 장비를 구성하면 네트워크 구성, 설계, 문제 진단 및 해결이 용이해짐(각 계층이 하는 일이 명확하게 정해져 있으므로)

OSI 모델

OSI 7계층
통신 단계를 7개의 계층으로 나눈 네트워크 참조 모델 : 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성
1.
물리 계층(Physical layer)
비트 신호를 주고받는 계층
컴퓨터는 0과 1만을 이해 가능 → 네트워크를 통해 주고받는 정보 또한 0과 1로 이뤄진 신호로 구성
비트 신호(0과 1로 이뤄진 신호)를 유무선 통신 매체를 통해 운반하는 계층
2.
데이터 링크 계층(Data link layer)
같은 LAN에 속한 호스트끼리 올바르게 정보를 주고받기 위한 계층
이를 위해 같은 네트워크에 속한 호스트를 식별할 수 있는 주소(MAC 주소)를 사용하고, 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인
물리 계층과 데이터 링크 계층은 서로 밀접하게 연관된 계층이며, 하드웨어와 밀접하게 맞닿아 있는 계층
3.
네트워크 계층(Network layer)
네트워크 간 통신을 가능하게 하는 계층
데이터 링크 계층이 동일 LAN에 속한 호스트끼리 정보를 올바르게 주고받기 위한 계층이라면, 네트워크 계층은 LAN을 넘어 다른 네트워크와 통신을 주고받기 위해 필요한 계층
네트워크 간 통신 과정에서 호스트를 식별할 수 있는 주소(IP 주소) 필요
네트워크 계층에서 대표적으로 사용되는 프로토콜 : IP
4.
전송 계층(Transport layer)
네트워크를 통해 송수신되는 패킷이 전송 도중 유실되거나 순서가 뒤바뀔 때를 대비해 신뢰성 있는 전송을 가능하게 하는 계층
포트(Port)라는 정보를 통해 특정 응용 프로그램과의 연결 다리 역할을 수행하는 계층
전송 계층에 속한 대표적인 프로토콜 : TCP, UDP
5.
세션 계층(Session layer)
세션(Session) : 응용 프로그램 간의 연결 상태를 의미
응용 프로그램 간의 연결 상태를 유지하거나 새롭게 생성하고, 필요하다면 연결을 끊는 역할 수행
6.
표현 계층(Presentation layer)
인코딩, 압축, 암호화와 같은 작업 수행
세션 및 표현 계층은 다른 계층과 달리, 명확하게 구분하지 않거나 응용 계층에 포함하여 간주하는 경우가 많음
7.
응용 계층(Application layer)
사용자와 가장 밀접하게 맞닿아 있어 여러 네트워크 서비스를 제공하는 계층
중요한 프로토콜들이 다수 포함
대표적인 프로토콜 : HTTP, HTTPS

TCP/IP 모델

TCP/IP 4계층
OSI 모델은 주로 네트워크의 이론적 기술을 목적으로 사용하지만, TCP/IP 모델구현과 프로토콜에 중점을 둔 네트워크 참조 모델
1.
네트워크 액세스 계층(Network Access Layer)
링크 계층(Link Layer) 네트워크 인터페이스 계층(Network Interface Layer)
OSI 모델의 데이터 링크 계층과 유사
2.
인터넷 계층(Internet Layer)
OSI 모델의 네트워크 계층과 유사
3.
전송 계층(Transport Layer)
OSI 모델의 전송 계층과 유사
4.
응용 계층(Application Layer)
OSI 모델의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사

캡슐화와 역캡슐화

프로토콜과 네트워크 참조 모델을 토대로 이뤄지는 패킷의 송수신 과정송신 과정에서는 캡슐화가, 수신 과정에서는 역캡슐화가 이뤄짐.
네트워크 계층 구조를 통한 송수신과 패킷의 구조를 상기해야 캡슐화 및 역캡슐화를 이해할 수 있음 :
패킷을 송신하는 쪽에서는 상위 계층에서 하위 계층으로 정보 전송
패킷을 수신하는 쪽에서는 하위 계층에서 상위 계층으로 정보 전송
네트워크 계층 구조를 이용하면 프로토콜을 계층별로 구성 가능
하나의 패킷은 헤더 및 페이로드(때로는 트레일러까지)를 포함하며, 프로토콜의 목적과 특징에 따라 헤더의 내용은 달라질 수 있음
즉, 각 계층에서는 어떤 정보를 송신할 때 상위 계층으로부터 내려받은 패킷을 페이로드 삼아, 각 계층에 포함된 프로토콜의 각기 다른 목적과 특징에 따라 헤더 or 트레일러를 덧붙인 다음 하위 계층으로 전달(상위 계층의 패킷이 하위 계층의 페이로드로 간주)
캡슐화(Encapsulation) : 송신 과정에서 헤더(및 트레일러)를 추가해 나가는 과정
역캡슐화(Decapsulation) : 캡슐화 과정에서 붙인 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거하는 과정
유의사항 : 각 계층에서 주고받는 패킷(메시지)을 지칭하는 이름이 다르다는 것
OSI 모델을 기준으로 계층마다 패킷을 부르는 이름이 다름
계층
패킷 이름
그 이상의 계층
데이터(Data) or 메시지(Message)
전송계층
세그먼트(Segment) : TCP 기반 패킷의 경우
전송계층
데이터그램(Datagram) : UDP 기반 패킷의 경우
네트워크 계층
패킷(IP 패킷) or 데이터그램
데이터 링크 계층
프레임(Frame)
물리 계층
심볼(Symbol) or 비트(Bit)

네트워크 지도 그리기

참고 자료