네트워크란 두 대 이상의 컴퓨터를 연결하여 서로 통신할 수 있게 만든 망입니다. 유저가 증가하며 복잡한 네트워크 망이 구성됐고, 이러한 네트워크의 집합가 나왔는데 이를 인터넷이라고 부릅니다.
네트워크 구조가 복잡하든, 트래픽이 많든, 해저 케이블이 끊기든 이들의 목적은 패킷을 어떤 상황에도 안전하고 빠르게 목적지까지 전달하는것이 목표입니다.
현재 인터넷 구조는 최상위 루트에 인터넷이 있고, 하위에 계층별로 인터넷 회사 ISP와 ISP들을 연결하는 IXP 회사들이 있습니다. 패킷을 전달할 때 굳이 상위 계층으로 갈 필요가 없는 것들을 필터링하여 비용, 속도, 트래픽 면에서 효율을 얻습니다. 필터링이 없다면 상위 계층에서 무분별하게 패킷이 왔다갔다하고 이는 트래픽이 몰려, 속도도 느려지고 비용도 과부화가 걸릴것입니다. 유저가 인터넷을 사용하고 싶다면, 상위 reginoal 네트워크에 연결만하면 되므로 확장성 측면에도 효율적입니다. 핵심은 계층별로 인터넷을 구성하는것입니다.
Packet Switching : 특정 사용자의 독점을 방지하기 위해 메시지를 패킷 단위로 자릅니다. 패킷마다 목적지 주소를 싡고, 패킷을 다음 링크로 전송하기 전에 저장 한 뒤 전송하는 Store and Forward 방식을 따릅니다. Ex) Internet
Circuit Switching : 대역 독점을 막기 위해 자원을 분할합니다. 따라서 메시지 전달 전 Call Setup 과정이 필요합니다. 즉, 출발지부터 목적지까지 어떤 라우터를 거치는지를 설정하고 필요 자원을 예약합니다. Ex) 전화
호스트와 인터넷을 연결한 네트워크를 의미합니다.
bottlenect link
출발지부터 목적지까지 여러 링크가 있고 그 중 capacity가 가장 낮은 링크에 따라 속도가 결정됩니다. 인터넷은 capacity가 매우 높아 보통 속도는 access network link에 의존합니다.
PC 방에서 인터넷 광랜 10M -> 50M -> 100M -> 1G -> 10G라고 적혀있습니다. 사실 이 의미는 bandwidth를 의미합니다. 엄밀히 말하자면 속도가 빠름 유무를 결정짓는건 Latency와 더 밀접한 관련이 있습니다. 즉, 한정된 대역폭을 나눌 때 bandwidth는 중요하지만 그 자체의 속도를 의미하는것은 아닙니다.
프로토콜이란 IT 기기가 서로 통신 하기 위한 규칙입니다. 프로토콜 갯수가 많아지며 관리가 힘들어졌기 때문에 네트워크에서 통신이 일어나는 과정을 7단계로 나누었습니다. (OSI 7 계층) 이에 따라 통신이 일어나는 과정을 쉽게 파악할 수 있고 관리가 편해졌습니다. 만약 통신 중 특정 장비의 문제가 발생한다면 다른 단계의 장비 및 SW를 건드리지 않고 문제가 생긴 단계만 고칠 수 있기 때문입니다.
OSI 7 Layer 상위 계층은 하위 계층의 프로토콜을 이용해 새로운 프로토콜을 수립합니다. 하위 레이어가 복잡할수록 비용이 더 커서, 단순하게 구성하고 상위 계층에서 좀 더 복잡하고 엄격히 구성합니다.
소켓이란 네트워크 통신을 위해 반드시 필요하며 IP, Port, protocol을 추상화했습니다. 소켓은 application 계층으로부터 패킷을 받아와 transport계층으로 전달하는 창구로 양방향 통신을 가능케 합니다.
일반적으로 소켓 통신은 별도의 설정이 없으면 동기 방식입니다. 일상 생활, 사고 하는 방식이 동기 방식이 편리하기 때문입니다. 하지만 일의 효율성을 고려할 때 비동기 방식이 편리한 경우가 다수 있습니다.