- 응용 계층에서 물리 계층까지(위에서 아래로) (A-P-S-T-N-D-P)
- All-People-Seem-To-Need-Data-Processing (모든 사람은 데이터 처리가 필요한 듯 하다)
비크람 쿠는 “OSI 참조 모델의 목적은 업체 및 개발자가 만드는 디지털 통신 제품과 소프트웨어 프로그램이 상호 연동될 수 있도록 안내하고 통신 도구 간의 명확한 비교를 쉽게 하는 것이다”라고 답했다.
3계층 - 네트워크 : IP
4계층 – 전송 계층(Transport) : TCP
인터넷 프로토콜 스위트(영어: Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음이다.
인터넷 프로토콜 슈트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 슈트라고도 불린다.
TCP(Transmission Control Protocol)
두 호스트가 교환하는 데이터와 승인 메세지의 형식을 정의하여, 서버와 클라이언트간의 데이터를 신뢰성있게 전달하기 위해 만들어진 규약이다.
컴퓨터와 컴퓨터를 이어주는 네트워크는 네트워크 선로를 통해 전달되는데, 이 선로는 광케이블일수도, 구리선일수도, 인공위성 일수도 있다.
TCP는 데이터 패킷에 일련의 번호를 부여함으로써, 데이터 손실을 찾아내서 교정하고, 순서를 재조합하여 클라이언트에게 전달할 수 있게 해준다.
TCP의 장점은 복잡해서 신뢰성이 높다는 점이다.
IP(Internet Protocol)
컴퓨터와 컴퓨터간에 데이터를 전송하기 위해서, 각 컴퓨터의 주소가 필요하다.
Internet Protocol은 4바이트로 이루어진 컴퓨터의 주소이며, 192.168.9.255와 같이 3개의 마침표로 나뉘어진 숫자로 표시된다.
IP는 TCP와는 달리 데이터의 재조합이나 손실여부 확인이 불가능하며, 단지 데이터를 전달하는 역할만을 담당한다.
참고로 IP주소는 하드웨어 고유의 식별번호인 MAC주소와 다르게 임시적으로 다른 주체(통신사)에게 받는 주소이므로, 바뀔수 있다.
TCP(Transmission Control Protocol)
:인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 됩니다.
TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용합니다.
1) 연결형 서비스로 가상 회선 방식을 제공한다.
2) 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
3) 흐름 제어 및 혼잡 제어.
4) 높은 신뢰성을 보장한다.
5) UDP보다 속도가 느리다.
6) 전이중(Full-Duplex), 점대점(Point to Point) 방식.
TCP가 가상 회선 방식을 제공한다는 것은 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 의미
3-way handshaking과정은 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해서 세션을 수립하는 과정을 의미합니다.
TCP가 이러한 특징을 지니는 이유 TCP는 연결형 서비스로 신뢰성을 보장하기 때문입니다. 그래서 3-way handshaking의 과정도 사용하는 것이고, 데이터의 흐름제어나 혼잡 제어와 같은 기능도 합니다.
UDP(User Datagram Protocol)
:데이터를 데이터그램 단위로 처리하는 프로토콜
데이터그램이란 독립적인 관계를 지니는 패킷이라는 의미
TCP와 달리 UDP는 비연결형 프로토콜입니다.
UDP는 비연결형 서비스이기 때문에, 연결을 설정하고 해제하는 과정이 존재하지 않습니다.
서로 다른 경로로 독립적으로 처리함에도 패킷에 순서를 부여하여 재조립을 하거나 흐름 제어 또는 혼잡 제어와 같은 기능도 처리하지 않기에 TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만 신뢰성있는 데이터의 전송을 보장하지는 못합니다.
그렇기 때문에 신뢰성보다는 연속성이 중요한 서비스 예를 들면 실시간 서비스(streaming)에 자주 사용됩니다.
프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다.
기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다.
이런 형식을 정의하는 규칙의 집합을 프로토콜이라고 합니다.
IPv4(Internet Protocol version 4)
현재 IP주소는 버전4(IPv4)으로 네 도막으로 나눠진 최대 12자리의 번호로 이뤄져있습니다.
210.113.39.224
한 도막(위에서 각각 210, 113, 39, 224)은 0~255까지의 숫자로 표현할 수 있으며, 한 도막에 256가지의 경우의 수. 즉 2의 8승을 표현할 수 있습니다.
비트로 표현하면 한 도막마다 8비트로 이루어지며 총 4도막이므로 8*4 = 32비트 가 됩니다.
32비트로 이뤄진 IPv4는 최대 약 40억개의 서로 다른 주소를 부여할 수 있습니다.
그러나 기하급수적으로 늘어나는 사용자 수요를 감안할 때, 현재 사용되고 있는 IPv4 체계로는 계속해서 요구되는 인터넷 주소의 수요를 충족시킬 수 없다는 문제점이 있습니다.
IPV4는 한마디로 32비트의 40억개의 주소(2^32)로 구성됩니다.
IPV4 에서 IPV6 로의 전환의 이유
(IETF:Internet Engineering Task Force)에서는 2008년에서 2011년 사이에 IPv4 어드레스가 고갈될 것으로 예측했으며, 'IPng'(IP next generation)라고 하는 작업 그룹을 형성하여, 1994년부터 활동해 왔습니다.
이 결과로 1995년 9월 18일 표준이 제안되면서 IPv6가 만들어 졌고, 또한 IPv6를 연동, 실험시킬 수 있는 실험망으로 1996년 Bob Fink등이 주축이 되어 6Bone이라는 가상망을 만들었습니다.
IPV6 ( Internet Protocol version 6 )가 나오게 된 배경이라고 할 수 있습니다.
IPV6(Internet Protocol version 6)
IPv6주소는 128비트체계로 구성 되어 있으며, 그 표현방법은 128비트를 16비트씩 8부분으로 나누어 각 부분을 콜론(colon, "":"")으로 구분하여 표현하며, 각 구분은 16진수로 표현합니다.
2001:230:abcd:ffff:0000:0000:ffff:1111
128비트 주소체계인 IPv6는 최대 1조개 이상(2^128)을 마련할 수 있는 점이 특징입니다. IPv6가 쓰이면 장차 일상생활에 사용하는 모든 전자제품, 작게는 전자제품의 일부 회로가 서로 다른 IP주소를 갖게 된다고 볼 수 있습니다.
또한 서비스에 따라 각기 다른 대역폭을 확보할 수 있도록 지원, 일정한 수준의 서비스 품질(QoS)을 요구하는 실시간 서비스를 더욱 쉽게 제공할 수 있고 인증, 데이터 무결성, 데이터 기밀성을 지원하도록 보안기능을 강화한 것이 IPv6입니다.
앞으로 유비쿼터스에서는 각기 전자제품도 고유 아이피를 갖게 되는 IoT의 환경에 적용하기에 더 적합하다고 보여집니다.
가상사설망 또는 VPN(virtual private network)
: 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다.
우리가 일반적으로 사용하는 네트워크 연결은 공개망(Public Network)라고 해서 인터넷과 같이 모두에게 공개된 환경을 사용합니다. 세계 공통으로 정한 표준화된 방식을 사용해서 통신을 해야 하죠. 쉽게 생각해 보면 우리가 스마트폰에 별다른 설정 없이 이용하는 모든 서비스는 Public Network를 사용
가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.
가상 사설망의 등장배경은 인터넷을 기반으로 한 기업 업무환경의 변화에 기인한다.
즉, 소규모 지역에서 문서만을 전달하던 업무처리 기반에서 하나의 건물 내의 네트워크를 이용한 업무로, 다시 본사와 다수의 지사 관계, 또한 지사는 국내 지사와 국외 지사로 확장되었다.
재귀적 DNS
대개 클라이언트는 신뢰할 수 있는 DNS 서비스에 직접 쿼리를 수행하지 않습니다. 대신에 해석기 또는 재귀적 DNS 서비스라고 알려진 다른 유형의 DNS 서비스에 연결하는 경우가 일반적입니다.
재귀적 DNS 서비스는 호텔 컨시어지와 같은 역할을 합니다.
DNS 레코드를 소유하고 있지 않지만 사용자를 대신해서 DNS 정보를 가져올 수 있는 중간자의 역할을 합니다.
재귀적 DNS가 일정 기간 캐시된 또는 저장된 DNS 참조를 가지고 있는 경우, 소스 또는 IP 정보를 제공하여 DNS 쿼리에 답을 합니다. 그렇지 않다면, 해당 정보를 찾기 위해 쿼리를 하나 이상의 신뢰할 수 있는 DNS 서버에 전달합니다.
웹 브라우저를 열어 주소 표시줄에 www.example.com을 입력하고 Enter 키를 누릅니다.
www.example.com에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)가 관리하는 DNS 해석기로 라우팅됩니다.
ISP의 DNS 해석기는 www.example.com에 대한 요청을 DNS 루트 이름 서버에 전달합니다.
ISP의 DNS 해석기는 www.example.com에 대한 요청을 이번에는 .com 도메인의 TLD 이름 서버 중 하나에 다시 전달합니다. .com 도메인의 이름 서버는 example.com 도메인과 연관된 4개의 Amazon Route 53 이름 서버의 이름을 사용하여 요청에 응답합니다.
ISP의 DNS 해석기는 Amazon Route 53 이름 서버 하나를 선택해 www.example.com에 대한 요청을 해당 이름 서버에 전달합니다.
Amazon Route 53 이름 서버는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환합니다.
ISP의 DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 됩니다. 해석기는 이 값을 웹 브라우저로 반환합니다. 또한, DNS 해석기는 다음에 누군가가 example.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 example.com의 IP 주소를 캐싱(저장)합니다. 자세한 내용은 Time to Live(TTL)를 참조하세요.
웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.example.com에 대한 요청을 전송합니다. 여기가 콘텐츠가 있는 곳
192.0.2.44에 있는 웹 서버 또는 그 밖의 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시합니다.
HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다.
HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다.
HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure 등으로 불리는 HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.
공개키 암호화: 공개키로 암호화를 하면 개인키로만 복호화할 수 있다.
-> 개인키는 나만 가지고 있으므로, 나만 볼 수 있다.
개인키 암호화: 개인키로 암호화하면 공개키로만 복호화할 수 있다.
-> 공개키는 모두에게 공개되어 있으므로, 내가 인증한 정보임을 알려 신뢰성을 보장할 수 있다.
HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고받을 수 있다. 하지만 HTTPS를 이용하면 암호화/복호화의 과정이 필요하기 때문에 HTTP보다 속도가 느리다.(오늘날에는 거의 차이를 못느낄 정도이다.) 또한 HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생하다.
LAN(Local Area Network)은 가정, 사무실 및 학교와 같은 작은 지리적 영역으로 제한된 컴퓨터 네트워크이며
WAN은 도시, 국가 또는 전 세계와 같은 넓은 지리적 영역에 걸친 네트워크입니다.
인터넷은 WAN의 예입니다.
근거리 통신망은 이더넷, Wi-Fi와 같은 기술을 사용합니다.
LAN의 특징은 고속, 오류 감소, 문제 해결 용이성 및 저렴한 비용입니다.
WAN은 일반적으로 전용 회선을 기반으로하므로 속도는 더 낮지만 비용이 많이 듭니다. 또한 복잡성으로 인해 오류가 많고 유지 관리가 어렵습니다.
WAN을 사용하여 여러 LAN을 상호 연결할 수도 있습니다.
LAN은 LAN을 의미하고 WAN은 WAN을 의미합니다.
LAN은 건물, 집, 학교 및 사무실과 같은 작은 지리적 영역으로 제한됩니다. WAN은 도시, 국가 또는 전 세계에 퍼져 있습니다. 인터넷은 WAN의 예입니다.
LAN은 이더넷 및 Wi-Fi와 같은 기술을 사용합니다. WAN에는 전용 회선이 필요합니다.
LAN의 전송 속도가 빠릅니다. 그러나 WAN의 전송 속도는 일반적으로 느립니다.
LAN 비용이 WAN 비용보다 낮습니다.
LAN의 오류 양은 WAN의 오류 양보다 훨씬 적습니다.
LAN의 문제는 WAN의 문제보다 해결하기 쉽습니다. LAN의 유지 관리 비용은 WAN의 유지 관리 비용보다 훨씬 적습니다.
LAN은 스위치 및 허브와 같은 간단한 네트워크 장치로 만들 수 있습니다. 그러나 WAN에는 라우터 및 게이트웨이와 같은 장치가 필요합니다. (하지만 오늘날 LAN에는 라우터와 게이트웨이도있는 여러 서브넷이 포함되어 있습니다.)
LAN은 일반적으로 한 사람이나 회사가 소유하고 제어합니다. 반면에 WAN은 여러 당사자가 소유하고 제어합니다.
대한민국에서 홍길동이라는 이름만으로 나란 사람을 찾을 수 있을까? 찾더라도 힘들 것이다. 왜냐하면 홍길동이란 이름은 나만 쓰는게 아니기 때문이다.
내 주민등록번호는 대한민국에서 나만 사용하고 있기 때문이다. 맥어드레스(Mac Address)도 비슷한 개념이다. 단 하나의 고유한 주소를 부여해서 통신을 할 수 있도록 만든 일종의 하드웨어 주소다.
그럼 아이피 주소(IP Address)는 뭔가요?
IP 주소도 통신을 하기 위해 사용되는 주소가 맞다. 우리가 일상생활에서 인터넷을 하기 위해 가장 많이 사용되는 주소가 IP 주소이고, 일반인이 가장 많이 알고 있는 주소도 IP 주소가 맞다.
그럼 IP 주소만 가지고 통신을 할 수 있느냐?고 물어본다면 아니다.
IP 주소(IP Address)와 맥어드레스 (Mac Address) 둘 다 필요하다.
IP주소를 가지고만 통신을 시도하는 것처럼 보이지만 실제로 마지막에 맥 어드레스가 필요하다.
이는 TCP/IP와 OSI 7 Layer라는 통신표준에서 설계되어 있는대로 통신이 진행되기 때문인데
아이피 주소는 레이어3 네트워크에서 사용
맥 주소는 레이어2 데이터링크에서 사용
통신 표준에 맞게 단계별로 진행 될 때, 아이피주소에서 맥 주소로 변환되는 과정을 거친다 이를 ARP(Address Resolution Protocol)이라고 한다.
통신을 하기 위한 모든 랜카드에는 고유한 맥 주소가 있다. 이는 세상에 딱 하나만 존재하는 주소다.
그렇기 때문에 맥 주소를 알면 통신하고싶은 장비를 찾을 수 있다.
하지만 처음 통신이 맥 주소로 시도되는 것이 아니다. 처음에는 IP Address로 시도된다.
인터넷 상에 통신은 중간에 수많은 IP주소와 맥어드레스가 변환되는 과정을 거친다. 목적지 아이피를 찾고 해당 아이피에 연결된 목적지 맥어드레스를 찾고 다시 아이피를 찾고 맥어드레스를 찾고를 반복하는 과정이다.
맥(Mac)은 미디어 엑세스 컨트롤(Media Access Control)의 줄임말이다.
통신할 하드웨어 장비을 식별할 수 있는 고유 주소다.
일반적으로 우리가 아는 랜카드에는 하나의 맥 어드레스가 붙어 있다. 총 48비트 길이의 주소다.
맥 주소는 8자리마다 하이픈(-), 콜론(;), 점(.)으로 구분된다.
00-00-00-00-00-00 또는 00:00:00:00:00:00, 마지막으로 0000.0000.0000 다.
우리가 보통 장비에서 맥주소를 찾을 때 이 세가지 형식들 중 하나를 흔히 볼 수 있다.
48비트로 주소를 표시하면 너무 길기 때문에 16진수로 나눠서 표시한다. 보통 앞에 16진수 6개는 OUI(Organizational Unique Identifier)을 말한다.
6개 주소로 이 장비가 어느 회사에서 만들었는지 식별할 수가 있다.
나머지 6개는 호스트 식별자라고 해서 각 회사에서 임의로 붙이는 일종의 시리얼넘버 같은 개념이다.
00:00:00:00:00:00
OUI주소 호스트주소
OUI 주소는 각 회사에 부여된 고유한 주소이기 때문에 OUI주소를 가지고 해당 통신 장비가 어디서 만들어졌는지 알 수 있다.
그래서 OUI을 식별해서 장비 정보를 수집하기도 한다.