네트워크는 크게 서비스를 제공하는 입장과 서비스를 받는 입장으로 나뉘는데, 서비스를 제공하는 입장은 클라우드나 데이터 센터, 회사 기계실에 서버를 놓고 서비스를 제공하고, 서비스를 받는 입장은 집이나 회사에서 인터넷에 접속하는 경우를 들 수 있다.
통신 규약으로, 일반적인 프로토콜은 단독으로 사용하지 않고 여러 개를 묶어서 사용하기 때문에 프로토콜 스택이라는 표현을 사용한다.
ex) TCP/IP 스택 : 하나의 프로토콜이 아니라 4개의 계층으로 분리해서 여러 개의 프로토콜 집합으로 구성
표준 협회나 어떤 회사에서 사용하는 지 등에 따라 다양한 프로토콜이 존재했지만 최근에는 복잡하고 산재되어 있던 여러 프로토콜 기술이 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있다.
통신 규약의 표준이 필요하여 탄생한 것으로 네트워크를 개념적으로 나누었으나 요즘에는 거의 사용하지 않고 TCP/IP 프로토콜 스택을 기반으로 한다.
계층과 데이터
| 계층 | 이름 | 데이터 단위 |
|---|---|---|
| 7 | Application | Data |
| 6 | Presentation | Data |
| 5 | Session | Data |
| 4 | Transport | Segment |
| 3 | Network | Packet |
| 2 | DataLink | Frame |
| 1 | Physical | Bit |
현재 인터넷의 표준

물리적 연결과 관련된 정보를 정의하고 전기 신호를 잘 전달하는데 초점이 맞춰져 있다.
사용되는 장비 : Hub, Repeater, Cable, Connector, Tranceiver, TAP
1계층 장비는 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외한 모든 포트에 같은 전기 신호를 전송한다.
전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리하고 주소 정보를 정의하여 정확한 주소로 통신이 되도록 한다. 출발지와 목적지를 확인하여 내게 보낸 것이 맞는지, 내가 처리해야 하는지에 대한 검사를 수행한다.
논리적인 주소를 이용해서 최적의 경로를 설정하는 라우팅을 수행한다.
실제로 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 수행한다.
사용되는 장비 : Load Balancer, Firewall
패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 생길 수 있는데 이런 경우에 바로잡아 주는 역할을 수행한다.
큰 데이터를 통으로(Message) 보내면 전송 시간이 오래 걸리고, 그러다보면 앞의 데이터가 못가서 뒤의 데이터도 밀리게 되므로 데이터를 쪼개서 전송하는데, 이를 Segment라고 한다. Segment를 받는 컴퓨터에서는 이를 다시 조립해야 한다.
접속을 안정적으로 유지하도록 관리하고 작업 완료 후에는 연결을 해제하는 계층으로, 에러로 중단된 통신에 대한 에러 복구와 재전송 또한 수행한다.
표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문으로 형식을 맞추어주는 역할을 수행한다. MIME 인코딩이나 데이터 압축, 암호화와 같은 동작이 이루어진다.
애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행하는 계층이다.
인터넷 접속을 위해 통신 사업자와 연결하는 회선으로, 통신 사업자와 케이블 연결만으로 인터넷이 가능한 것이 아니라 통신 사업자가 판매하는 인터넷 회선을 사용해야만 인터넷 접속이 가능하다.
가입자와 통신 사업자 간에 대역폭을 보장해주는 서비스로, 대역폭이란 특정 시간동안 네트워크를 통해 전송할 수 있는 데이터의 최대 용량을 뜻한다.
LLCF(Link Loss Carry Forward)
한쪽 링크가 다운되면 이를 감지해 반대쪽 링크도 다운시키는 기능으로, 상대방의 연결이 끊겼음을 알지 못하고 데이터를 계속 전송하는 등의 통신 장애가 발생하는 것을 막기 위한 기능이다. 동축 케이블은 원래 한쪽이 다운되면 다른 한쪽은 다운되지 않기 때문에 LLCF 설정을 해줘야 한다.
인터넷 연결 회선에 대한 통신 대역폭을 보장해주는 상품으로 인터넷 속도를 보장한다. 선로 공유 기술을 사용하는 일반 인터넷 회선과 달리 다른 가입자와 경쟁하지 않고 가입자와 통신 사업자의 연결 품질을 보장한다.
물리적으로는 전용선이 아니지만 가상으로 직접 연결한 것과 같은 효과를 만들어내는 네트워크 기술
통신 사업자 VPN : 전용선은 연결거리가 늘어날수록 비용이 증가하므로 통신 사업자는 가입자가 계약된 대역폭을 항상 100% 사용하지 않는 경우 낭비되는 비용을 줄이고자 한다. 가장 대표적인 MPLS VPN(Multi Protocol Label Switching VPN)은 여러 가입자가 하나의 망에 접속되지만 가입자를 구분할 수 있는 기술을 적용하여 전용선처럼 공용회선을 사용하여 비용을 낮춘다.
가입자 VPN : 일반 인터넷망을 이용해 사용자가 직접 가상 전용 네트워크를 구성
Address Learning
목적지를 MAC Address로 기억하는데 이를 MAC Address Table에 해당하는 포트(인터페이스)와 함께 기록하는 과정
✚ MAC Address는제조회사:일련번호형태이기 때문에 기억하기 어려워서 이를 그룹화하게 되었고 이를 IP라고 함
Router
3계층에서 동작하는 장비로, 원격지(외부)로 나갈 때 경로 설정을 수행하는데 외부 네트워크를 기억하고 있다가 그곳으로 데이터를 전송한다. 정확한 방향으로 패킷이 전송되도록 경로를 지정하고 최적의 경로로 패킷을 포워딩한다고 표현한다. 최근에는 L3 Switch나 IP 공유기가 이 역할을 대신 수행하기도 한다.
Load Balancer
4계층에서 동작하는 장비이고, 부하를 분산시킬 목적으로 요청을 받으면 실제 처리할 목적지의 주소로 변경을 해서 요청을 처리하는 장비이다. L4Switch로 구현하기도 하고 소프트웨어로 구현하기도 한다.

방화벽/IPS
정보를 잘 제어하고 공격을 방어하는 목적의 장비
공유기
공유기는 스위치, 라우터, NAT, 그리고 방화벽 기능을 한곳에 모아놓은 장비
모뎀
짧은 거리를 통신하는 기술과 먼 거리를 통신할 수 있는 기술이 달라 이 기술들을 변환해주는 장비
출발지와 목적지가 1:1로 통신하는 방식이다.
1:All
1:Group
하나의 출발지에서 다수의 특정 목적지로 데이터를 전송한다. 구독이나 화상 회의에서 사용되는 방식이다.
1:1
MAC Address는 변경할 수 없도록 하드웨어에 고정되어 출하되기 때문에 네트워크 구성 요소마다 다른 주소를 가진다.
동작
3계층에서 사용되는 주소로 사용자가 변경 가능한 논리적인 주소이다.
주소 체계
0.0.0.0 ~ 255.255.255.255네트워크 규모에 따른 클래스 분류
첫 번째 주소는 해당 네트워크를 의미하는 주소이고, 마지막 주소는 브로드캐스트 주소로 사용되기 때문에 실제 사용 가능한 주소를 계산할 때 2를 빼준다.
클래스별 주소 범위 (Classful)
A Class : 0.0.0.0 ~ 127.255.255.255
첫 번째 비트가 0 → 00000000(2) = 0(10)
0 0000000.00000000.00000000.00000000 ~
0 1111111.11111111.11111111.11111111
B Class : 128.0.0.0 ~ 191.255.255.255
두 개의 비트가 10 → 10000000(2) = 128(10)
10 000000.00000000.00000000.00000000 ~
10 111111.11111111.11111111.11111111
C Class : 192.0.0.0 ~ 223.255.255.255
세 개의 비트가 110 → 11000000(2) = 192(10)
110 00000.00000000.00000000.00000000 ~
110 11111.11111111.11111111.11111111
D Class : 224.0.0.0 ~ 239.255.255.255
네 개의 비트가 1110 → 11100000(2) = 224(10)
1110 0000.00000000.00000000.00000000 ~
1110 1111.11111111.11111111.11111111
E Class : 240.0.0.0 ~ 255.255.255.255
(네 개의 비트가 1111 → 11110000(2) = 240(10))
1111 0000.00000000.00000000.00000000 ~
1111 1111.11111111.11111111.11111111
Classless 네트워크 등장
IP 부족 문제를 해결하기 위해 등장한 개념으로, 클래스로 IP 대역을 구분하여 관리하는 기존의 방식을 버리고 필요한 만큼만 IP를 나눠서 할당하는 방식을 사용하게 되었다.
이론적으로 IPv4는 43억 개의 주소를 나타낼 수 있지만 실제 사용가능한 개수는 이보다 적고, 시간이 지날수록 IP주소가 고갈되면서 IP 주소 부족 문제가 발생했다. 부족한 IP주소를 최대한 사용하고자 하나의 네트워크 대역에서 사용되지 않는 IP를 다른 네트워크에서 사용하게 하려고 해도 Classful하게 네트워크 대역을 구분하면 남는 IP 주소를 사용할 수 없다. ⇒ Classless 네트워크
IP 부족 문제를 해결하기 위해 등작한 3가지 방법
1. CIDR(Classless Inter-Domain Routing) 기반 주소 체계
2. PrivateIP와 NAT
3. IPv6
CIDR
CIDR 기반의 주소 체계는 서브넷 마스크라는 개념을 도입해서 네트워크의 규모를 원하는 대로 나누어서 낭비없이 사용할 수 있도록 한다. 원래 클래스보다 작게 쪼개는 것을 서브네팅, 원래 클래스보다 더 크게 만드는 것을 슈퍼네팅이라고 한다.
서브넷(Subnet Network, 서브넷 네트워크)
하나의 네트워크를 쪼개 만든 작은 네트워크 단위로, IP 주소와 서브넷마스크의 AND 연산을 통해 구할 수 있다.
서브네팅(Subnetting)
하나의 네트워크를 서브넷으로 쪼개는 행위
넷마스크(Netmask)
IP 주소의 네트워크 부분과 호스트 부분을 구분하게 하는 값으로 네트워크 주소 부분의 비트는 1로, 호스트 주소 부분의 비트는 0으로 치환한 32bit 문자열이다. IP 주소와의 AND 연산을 통해 네트워크 주소를 얻을 수 있다.
서브넷마스크(Subnet Mask)
서브네팅을 위해 사용하는 넷마스크로, 이를 사용하여 쪼개진 네트워크 주소를 서브넷 네트워크라고 한다.
표기법
10진수 표기법 : 192.168.0.1 255.255.255.0
CIRDR 표기법 : 192.168.0.1/24(왼쪽부터 나열된 1의 수가 24개)
⇒ 둘 다 IP 주소가 192.168.0.1이고 서브넷 마스크는 255.255.255.0이라는 의미
클래스별 기본 서브넷 마스크
A 클래스 : 255.0.0.0
B 클래스 : 255.255.0.0
C 클래스 : 255.255.255.0
✏️ 192.168.0.0/29는 어떤 의미일까?
/29는 서브넷마스크의 네트워크 부분을 나타내는 1의 개수로 서브넷 마스크가 11111111.11111111.11111111.11111000 ⇒ 255.255.255.248임을 나타낸다.
즉, 192.168.0.0/29 == 192.168.0.0 255.255.255.248이고 호스트 주소를 나타내는 0이 3개이므로 각 서브넷(네트워크)마다 2**3 = 8개의 컴퓨터에 IP를 할당할 수 있음을 의미한다.
⇒ 192.168.0.0/29는 네트워크 주소가 192.168.0.0이고 192.168.0.1~192.168.0.6의 IP 주소를 가지는 호스트(6개), 192.168.0.7을 브로드캐스트 주소를 가지는 서브넷(네트워크)를 표현한 것이다.
192.168.0.0~192.168.0.7의 8개의 IP 주소를 다 써서 표현하는 것보다 훨씬 간단하다는 장점이 있다.
NAT와 PrivateIP 주소 이용
Classless하게 IP 주소를 사용해도 부족해서 등장한 것이 Private IP(사설 IP)로, 현재는 Classless한 IPv4와 Private IP를 같이 사용하고 있다.
- Public IP와 Private IP
Public IP : 외부에서 구별하기 위한 IP
Private IP : 내부 네트워크(같은 네트워크 대역)에서 각 컴퓨터를 구별하기 위한 IP
Private IP는 외부에서 구별하기 위한 용도로는 사용 불가하기 때문에 네트워크 내부의 컴퓨터가 외부와 통신할 때는 해당 네트워크의 public ip로 변환돼서 나가는데 이를 NAT라고 한다. 실제 인터넷 세상에서는 공인IP로만 통신하기 때문에 외부 네트워크 대역에서는 사설IP 대역이 보이지 않는다.
A Class : 10.0.0.0 ~ 10.255.255.255
B Class : 172. 16.0.0 ~ 172.31.255.255
C Class : 192.168.0.0 ~ 192.168.255.255
IP를 아껴쓰기 위한 목적도 있지만, 인터넷은 할 필요가 없지만 내부 통신은 해야할 때를 위해 private ip를 사용하기도 한다.
- NAT(Network Address Translation)
주소를 변환해서 사용하는 기술로, 내부에서는 Private IP를 사용하고 인터넷을 사용할 때는 Public IP로 변환하는 경우에 주로 사용한다.
Bogon IP
IP 주소를 할당하는 최상위 기구인 IANA가 여러가지 목적으로 예약해놓은 공인 IP로, Bogon IP는 라우터에 정보가 존재하지 않는다. 이 IP 대역의 통신 시도가 있다면 해킹을 목적으로 한 IP Spoofing일 가능성이 높다.
4계층(전송 계층) 프로토콜로, 목적지 단말 안에서 동작하는 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 만들기 위한 프로토콜
컴퓨터 내에서 동작하는 애플리케이션을 구분하기 위한 번호로 0~65535까지 존재한다.
Well Known Port(0~1023번) : IANA에 등록되어 있고 잘 알려져 있는 포트
ex) 22번 - SSH, 23번- Telnet, 80번 - HTTP 등
Registered Port(1024~49151번) : 애플리케이션에 할당하는 포트로 기업에서 IANA에 등록해서 사용하고 있다.
ex) 3306번 - MySQL, 8080번 - Tomcat 등
Dynamic Port(49152~65535번) : 동적으로 사용하는 임시포트
windows의 경우는 C:\windows\system32\drivers\etc 디렉토리의 protocol 파일과 service 파일에서 확인할 수 있다.
연결을 미리 만들어 두고 데이터를 분할하고 조립하기 위해서 패킷 번호를 부여하고 수신된 데이터에 대해 응답하는 작업을 수행하는 프로토콜
패킷 교환 방식
가장 많이 사용하는 데이터 통신 방식으로, 가상회선을 이용한 방식과 데이터그램을 이용한 방식이 있다.

일방적으로 보내는 쪽에서 받는 쪽으로 데이터를 전송하고 통신을 종료
| TCP | UDP |
|---|---|
| 연결 지향 | 비연결형 |
| 오류 제어 수행 | 오류 제어 수행하지 않음 |
| 흐름 제어 수행 | 흐름 제어 수행하지 않음 |
| 유니캐스트 | 유니캐스트, 멀티 캐스트, 브로드캐스트 |
| Full Duplex(보내고 받는게 동시에 가능) | Half Duplex(ex 무전기) |
| 데이터 전송 | 실시간 트래픽 전송 |
OSI 7계층 중 2, 3 계층이 주소를 가지고 있고 통신할 때 목적지를 찾아갈 수 있도록 해주는데 2계층에서 사용하는 MAC Address는 하드웨어 제조업체에서 임의적으로 할당하고, 3계층에서 사용하는 IP Address는 사용자가 직접 할당하거나 DHCP를 이용해서 자동으로 할당되기 때문에 둘은 아무런 관계가 없다. 따라서 이 두 주소를 대응시키는 방법이 필요하고 이것이 ARP 프로토콜이다.
arp -a 명령을 통해 arp 테이블 정보 확인 가능)IP 주소 충돌 감지
: 원래 네트워크 내부에서 IP주소는 유일하게 할당되어야 하지만 내가 할당받은 IP를 다른 장비가 할당받는 경우가 발생하고, 이렇게 되면 통신을 할 수 없는 상태가 되기 때문에 IP가 네트워크 내에서 이미 사용되고 있는지 GARP를 이용해서 확인하는 것이다. 윈도우의 경우 이런 경우에 ‘IP 충돌’이라는 메시지를 사용자에게 전송한다.
원격지 네트워크와 통신을 할 때는 네트워크 장비의 도움을 받아야 하는데, 이러한 용도의 장비를 게이트웨이라고 한다.