네트워크의 기본 구조
•
네트워크는 노드와 간선으로 이루어진 자료구조라는 점에서 그래프 형태라고 할 수 있음
•
네트워크 토폴로지(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) |
네트워크 지도 그리기
참고 자료











