먼저 인터넷 네트워크를 배우기 앞서 인터넷이 정확히 뭔지 알아보자.
인터넷(Internet)은 컴퓨터로 연결하여 TCP/IP(Transmission Control Protocol/Internet Protocol)라는 통신 프로토콜(규약이라는 뜻)을 이용해 정보를 주고받는 컴퓨터 네트워크이다.
컴퓨터 네트워크 : 노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망중 하나이다. 즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것이다. 컴퓨팅 장치들은 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환한다. 이 데이터들은 유선, 광케이블과 같은 케이블 매체, 또는 와이파이와 같은 무선 매체를 통해 확립된다.
인터넷(Internet)의 어원은 연결(International Network)이라는 단어를 줄인 것이다.
인터넷 망은 우리가 생각하는 것보다 훨씬 더 복잡하게 이루어져 있다. 과연 데이터가 어떤식으로 안전하게 넘어갈까?
송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다.
OSI(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 일반적으로 OSI 7계층이라고 한다.
전송 제어 프로토콜(Transmission Control Protocol, TCP)이라는 뜻으로 인터넷 프로토콜 스위트(IP Suite)의 핵심 프로토콜 중 하나이다. 보통 IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다. 그리고 전송 계층에 위치한다.
인터넷 프로토콜 스위트(Internet Protocol Suite) : 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음 (인터넷 프로토콜 스위트 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 스위트라고도 불린다.)
옥텟(Octet) : 컴퓨팅에서 8개의 비트가 한데 모인 것을 말한다. 초기 컴퓨터들은 1byte가 꼭 8bit만을 의미하지 않아서 8bit를 명확하게 정의하게 위해서 옥텟이라는 용어가 필요했던 것. 하지만 요즘은 byte와 같은 의미가 되어 더 이상 일반적으로는 사용되지 않는다.
TCP 3Way Handshake
사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)이라는 뜻으로 인터넷 프로토콜 스위트의 주요 프로토콜 중 하나이다. TCP와 함께 패킷으로 알려진 단문 메시지를 교환하기 위해서 사용된다.
UDP의 전송 방식은 너무 단순해 서비스의 신뢰성이 낮고, 패킷 도착 순서가 바뀌거나, 중복되거나, 심지어 통보 없이 누락시키기도 한다. UDP는 일반적으로 오류의 검사와 수정이 필요 없는 애플리케이션에서 수행할 것으로 가정한다.
TCP는 데이터를 주고 받을 양단 간에 먼저 연결을 설정하고 설정된 연결을 통해 양방향으로 데이터를 전송 하지만 UDP는 연결을 설정하지 않고 수신자가 데이터를 받을 준비를 확인하는 단계를 거치지 않고 단방향으로 정보를 전송한다.
오버헤드 : 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다.
하드웨어 장치에도 사용되지만, 소프트웨어에서는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다. 주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, 예를 들면 TCP와 UDP가 있다. 각 포트는 번호로 구별되며 이 번호를 포트 번호라고 한다. 포트 번호는 IP주소와 함께 쓰이며 해당하는 프로토콜에 의해 사용된다.
이런 상황에서 어떤 패킷이 필요한지 구분할 수 있게 도와주는 것이 바로 PORT이다.
위처럼 PORT를 이용하면 같은 IP내에서 프로세스 구분이 가능해진다.
Port정보를 포함하고 있는 TCP세그먼트와 IP패킷을 합친 패킷
IP는 기억하기 어려울 뿐만 아니라 변경될 수 있다. 그래서 DNS를 사용해야 한다.
도메인 네임 시스템(Domain Name System, DNS)이라는 뜻으로 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 IP주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다.
인터넷은 2개의 주요 이름공간을 관리하는데, 하나는 도메인 네임 계층, 다른 하나는 인터넷 프로토콜(IP) 주소 공간이다. DNS는 도메인 네임 계층을 관리하며 해당 네임 계층과 주소 공간 간의 변환 서비스를 제공한다.