1. 인터넷
Internet vs internet
두 용어는 엄밀하게 서로 다른 용어이다.
Internet 은 우리가 일상생활에서 사용하는, 전세계 사람들과 만나는 통로가 되는 인터넷을 의미한다.
일상에서 '거기 인터넷 잘 돼?' 라고 물어볼 때 사용하는 그 '인터넷' 을 의미하는 고유명사이다.
internet 은 조금 더 기술적인 의미로서, inter networking 의 줄임말이다.
네트워크와 네트워크 사이의 네트워크 (network of networks) 를 의미하는 용도로 사용한다.
예를 들어 군대에서는 외부 인터넷(Internet)과 완벽히 격리된 내부 네트워크를 사용하는데,
내부 네트워크 역시 각종 네트워크 장비를 통해 서로 다른 내부 네트워크들과 연결되어있다.
(인트라넷 - C4I 와 같은 느낌) 이렇게 외부 인터넷(Internet)과 연결이 되어있지 않더라도 네트워크와 네트워크 사이에 연결이 이루어지면 이를 '인터넷(internet)' 이라고 한다.
Internet 의 기본 구조
- host 는 인터넷에 접속하여 최종적으로 인터넷을 통해 주고받은 데이터를 활용하는 디바이스를 의미한다.
Internet 의 edge 에서 네트워크 어플리케이션을 실행하는 'end system' 이다.
(쉽게 컴퓨터, 스마트폰, 자동차, 냉장고... 등등을 의미한다.)
- Network Edge : 말 그대로 어떤 네트워크 망의 가장자리 (위에서 말한 host 가 속한 영역) 이다.
- Network Core : 말 그대로 어떤 네트워크 망의 중앙자리를 의미한다. Network Edge 에 있는 디바이스들이 서로 소통하기 위해 중간에 거쳐가는 다양한 장치들이 Network Core에 속한다.
Network Core 에서는 Packet Switching 또는 Curcuit Switching 이 발생한다.
- Packet Switch : 인터넷(Internet) 에서는 패킷 스위칭 방식을 사용한다.
패킷은 네트워크를 통해 주고 받는 고정된 크기의 데이터의 덩어리를 의미하는데, 이 패킷들은 '라우터' 또는 '스위치' 장비를 거치며 패킷 스위칭이 발생한다.
- Router vs Switch
스위치는 범용적으로 사용하는 '패킷을 매우 빠르게 교환하는 장치' 이다.
일반적으로는 L2 계층에서 사용하지만 (이더넷 스위치), L4 계층에서도 사용하는 경우가 있는만큼 범용적인 의미로 생각하는 것이 좋다.
라우터는 L3 계층에서 동작하는 IP 패킷을 스위칭하는 장비로, 스위치의 일종이다.
- 네트워크 레이어
Application Layer (L5)
Transport Layer (L4)
Network Layer (L3)
Data Link Layer (L2)
Physical Layer (L1)
- Communication Link
엔드 시스템과 스위치를 연결시켜주거나, 스위치와 스위치를 연결시켜주는 선을 의미한다.
유선이 될 수도 있고, 무선이 될 수도 있다.
이 링크들은 '대역폭'을 통해 특징을 구분할 수 있다.
예를 들면 WIFI, LTE, 5G, 광섬유, 구리선 등등..
- Network
네트워크는 위에서 설명한 호스트, 라우터, 스위치, 커뮤니케이션 링크 등을 모두 통칭하여, 어떤 특정 조직에 의해 관리 대상이 되는 집합 단위를 말한다.
하나의 네트워크에는 호스트, 라우터, 스위치, 커뮤니케이션 링크(통신선)이 들어있는 것이다.
- ISP
Internet Service Provider : 우리나라의 경우 SKT, LG U+, KT 가 유선/무선(모바일) 통신을 모두 담당한다.
- Protocol
메세지를 주고 받는 과정에 대한 규약 (HTTP, streaming video, TCP, IP, WiFi, 4/5G, Ethernet 등)
- Internet standards
RFC: Request for Comments, 프로토콜 표준에 대한 문서들이 RFC 문서로 정의되어 있다.
IETF : Internet Engineering Task Force, RFC를 만드는 단체
서비스 관점에서의 인터넷
- Infrastructure
서비스 관점에서 인터넷은 '인프라'이다.
인터넷을 통해 웹, 이메일, 게임, 이커머스, SNS 등의 서비스가 제공되기 때문이다.
- programming interface
우리가 인터넷을 이용하는 서비스를 개발할 때, 위에서 기술한 네트워크 레이어를 모두 구현할 필요가 없다.
인터넷을 이용하면 Transport Layer 까지는 이미 다 세팅이 되어있다.
Application Layer 와 Transport Layer 사이에 통신을 도와주는 인터페이스 역할을 수행하는 '소켓'을 이용하면 Application Layer 에서 수행할 비즈니스 로직만을 고민하여 적용하면 원하는 서비스를 제공할 수 있다.
마치 택배를 보낼 때 우리는 어떤 물품을 어디로 보낼지만 고민하면, 그 물건이 실제로 어떤 과정을 거쳐서 보내지는지 생각하지 않고 보내지는 것과 동일하다.
2. 프로토콜
Human Protocol vs Network Protocol
- Human Protocol
모르는 사람에게 시간을 물어본다고 해보자.
모르는 사람에게 시간을 물어볼 때는 어떤 과정을 거쳐야하고, 각 과정마다 어떻게 행동해야 할까?
1. 먼저 다짜고짜 시간부터 물어볼 수 없으니 "저기 실례합니다." 와 같은 말로 먼저 서두를 열고
2. 상대방이 "네?" 등으로 반응하는 것을 본 후에
3. "혹시 지금 몇시인가요?" 라고 물어본다.
하지만 이 절차와 각 절차에서 꺼내는 말의 내용은 정해져있지 않다.
어떤 사람은 "저기 실례합니다. 혹시 지금 몇시인지 아시나요?" 와 같이 바로 물어볼 수도 있고,
똑같은 과정을 거치더라도 "저기 실례합니다" , "잠시만 하나만 여쭤볼게요" 와 같이 다른 말로 서두를 열 수 있다.
이렇게 사람과 사람 사이의 Protocol 은 정확하게 명세가 되어있지 않다.
- Network Protocol
하지만 컴퓨터는 기계이므로 그렇게 할 수 없다.
어떤 데이터를 주고받기 위해서는 어떤 순서로, 각 순서마다 무엇을 해야하는지 상세하게 정의를 해야한다.
이 정의를 Protocol 이라고 한다.
구체적으로 프로토콜은 아래 내용을 정의한 규약이다.
- format : 어떤 형식의 데이터를 주고받을 것인지
- order of messages sent and received : 어떤 순서로 주고 받을 것인지
- actions taken : 각 상황마다 어떤 행동을 취할 지 (메세지를 받았을 때, 받지 못했을 때, 전송했을 때 등등)
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 6. Security (0) | 2024.04.08 |
---|---|
[컴퓨터 네트워크] 5. Performance (loss, delay, throughput) (0) | 2024.04.05 |
[컴퓨터 네트워크] 4. Network Core : Internet Structure (0) | 2024.03.20 |
[컴퓨터 네트워크] 3. Network Core : Packet Switching (0) | 2024.03.15 |
[컴퓨터 네트워크] 2. Network Edge (0) | 2024.03.11 |