TCP/IP 프로토콜 |
- 프로토콜이란 컴퓨터와 컴퓨터 사이에서 데이터를 어떻게 주고 받을 것인지를 정의한 통신 규약 - 같은 프로토콜을 사용하는 기기 간에는 통신이 가능 - 인터넷이라고 부르는 네트워크는 'TCP/IP' 라는 프로토콜에 따라 데이터를 주고 받음 - 'TCP/IP' 프로토콜은 다섯 개의 계층으로 구성 - 전송 계층의 'TCP'와 네트워크 계층의 'IP'로 전체 프로콜을 대표하여 TCP/IP 프로토콜 이라고 부르는 것 |
TCP/IP 프로토콜 모델 |
응용 계층(application layer) |
전송 계층(transport layer) |
네트워크 계층(network layer) |
링크 계층(line layer) |
물리 계층(physical layer) |
TCP/IP 프로토콜 모델의 계층별 역할과 대표 프로토콜 |
|||
계층 |
기능 |
프로토콜 |
전송 단위 |
응용 계층 |
서비스 제공 응용 프로그램 |
DNS, FTP, SSH, HTTP, Telnet |
메시지 |
전송 계층 |
응용 프로그램으로 데이터를 전달. 데이터 흐름 및 전송 신뢰성 담당 |
TCP, UDP |
세스먼트 |
네트워크 계층 |
주소 관리 및 경로 탐색 |
IP, ICMP |
패킷 |
링크 계층 |
네트워크 장치 드라이버 |
ARP |
프레임 |
물리 계층 |
케이블 등 전송 매체 |
구리 선, 광케이블, 무선 |
비트 |
주소 |
- 유선이나 무선 네트워크에서 사용하는 인터페이스는 거의 대부분 이더넷(ethernet) 방식을 사용 - 컴퓨터의 주소는 MAC 주소, IP 주소, 호스트명 |
MAC 주소 |
- MAC은 'media access control'의 약자 - MAC 주소는 하드웨어를 위한 주소 - 다른 말로 이더넷 주소, 하드웨어 주소, 물리 주소라도고 함 - 쉽게 말해 MAC 주소는 네트워크 인터페이스 카드(랜 카드)에 저장된 주소라고 생각하면 됨 - MAC 주소는 기본적으로 네트워크 인터페이스 카드가 만들어질 때 부여 - 원칙적으로 수정할 수 없지만, 일부 네트워크 인터페이스 카드의 경우 사용자가 MAC 주소를 수정할 수 있도록 허용함 - 특별한 경우가 아니라면 MAC 주소는 수정하지 않는 것이 좋음 - MAC 주소는 각 하드웨어를 구별하는 역할을 수행 - MAC 주소는 쌍점(:)이나 붙임표(-)로 구분되는 여섯 개의 16진수로 구성. 총 48비트. - 앞의 세자리는 제조사번호, 뒤의 세자리는 일련번호 - 앞의 세자리인 제조사 번호는 국제 표준 기구 중 하나인 IEEE에서 지정 |
MAC 주소의 예 |
|
00:50:56: |
3e:3c:fe |
제조사 번호(IEEE에서 지정) |
일련번호(제조사에서 지정) |
IP 주소 |
- 컴퓨터가 인터넷에 연결되려면 IP 주소가 할당되어 있어야함 - 보통 인터넷 주소라고 부르는 것이 IP(Internet Protocol) 주소 - IP 주소는 인터넷으로 연결된 네트워크에서 각 컴퓨터를 구분하기 위해 사용 - IP 주소는 1바이트 크기의 네 자리 숫자로 구성되므로, 총 4 바이트. - TPC/IP 프로토콜의 3~5계층은 IP 주소를 사용 - IP 주소는 네트워크를 구분하는 '네트워크 주소 구분' 과 해당 네트워크 안에서 특정 컴퓨터를 식별하는 '호스트 주소' 로 나뉨 - IP 주소는 총 32비트(4바이트) 중 몇 비트를 네트워크 부분으로 사용하고 나머지 몇 비트를 호스트 부분으로 사용하는지에 따라 A 클래스, B 클래스, C 클래스로 구분 - 주로 많이 접하게 되는 것이 C 클래스 - 기본적으로 C 클래스는 앞의 3바이트가 네트워크 부분이고, 뒤의 1바이트만 호스트 부분으로 사용됨 - 호스트 부분으로 사용할 수 있는 숫자는 0~255인데, 0은 네크워크 주소를 나타낼 때 사용, 255는 브로드캐스트 주소로 사용이므로 1~254를 호스트 주소로 할당할 수 있음 - 예를 들어 192.168.100.5 는 C 클래스이므로 네트워크 부분은 192.168.100 이고, 뒤의 5는 호스트 부분 |
IP 주소의 구성 |
|
IP 주소 |
|
네트워크 부분 |
호스분트 부분 |
넷마스크와 브로드캐스트 주소 |
- IP 주소가 네트워크 부분과 호스트 부분으로 구분 - IP 주소에서 네트워크 부분을 알려주는 역할을 하는 것이 넷마크스 - 넷마스크는 하나의 네트워크를 다시 작은 네트워크(서브넷)로 분리할 때도 사용. 그래서 서브넷 마스크라도고 함. - IP 주소와 넷마스크를 10진수에서 2진수로 바꾼 다음, 두 값을 가지고 AND 연산을 수행. - AND 연산을 수행하면 네트워크 부분만 남고 호스트 부분은 0이 됨 - 넷마스크는 IP 주소와 AND 연산을 수행하여 네트워크 부분만 남기는 역할 - IP 주소에서 어느 부분인지가 네트워크 주소인지를 알려주기 위해 넷마스크 값을 정확하게 설정해야함 - 브로드캐스트 주소는 같은 네트워크에 있는 모든 컴퓨터에 메시지를 보낼 때 사용하는 것으로 호스트 부분은 모두 1로 설정 - 예를 들어 IP 주소에서 네트워크 부분이 192.168.100.0 이면 브로드캐트 주소는 192.168.100.255가 됨 |
넷 마스크 계산의 예 |
||
10진수 |
|
2진수 |
192.168.100.5 255.255.255.0 |
AND |
11000000.10111100.01100100.00000101 11111111.11111111.11111111.00000000 |
192.168.100.0 |
|
11000000.10111100.01100100.00000000 |
호스트 이름 |
- 컴퓨터가 인터넷에 연결되려면 IP 주소가 있어야함 - 이 주소를 사용하여 메일도 보내고 웹사이트에도 접속 - 컴퓨터가 숫자를 좋아하는데 비해 사람은 숫자로 된 주소를 기억하기가 쉽지 않음 - 사람은 숫자보다 이름을 더 잘 기억 - 220.95.233.171 대신 www.naver.com 을 사용하는 것 - naver.com 이 네트워크 부분 / www 가 호스트 부분 - 개인용 PC 의 경우 특별히 호스트 이름을 붙일 필요가 없지만, 웹 서버와 같이 네트워크 서비스를 제공하는 서버 컴퓨터는 용도에 따라 호스트 이름을 붙여서 사용 |
포트 번호 |
- 주소와 관련해 알아둘 것 중의 하나 포트(port) 번호 - 포트 번호는 보통 주소에 포함되지는 않지만 각 서비스를 구분하는 번호 - 예를 들어 택배 기사는 일단 주소를 보고 배달 => 상품을 받은 엄마는 수시신을 보고 딸의 책상에 갖다 놓음 - 사용자가 네트워크 서비스를 이용할 때 사용자의 패킷은 IP주소를 보고 해당 서버 컴퓨터를 찾아감 - 서버 컴퓨터에 도착한 사용자의 패킷은 어떤 서비스를 요청한 것인지 확인한 다음 해당 데몬에 패킷을 전달 - 예를 들어 웹 서비스를 요청했으면 웹 서버 데몬(httpd)에 전달하는 것 - 사용자가 어떤 서비스를 요청했는지 구분해주는 것이 포트 번호 - 포트 번호는 TCP/IP 프로토콜의 4계층인 전송 계층에서 사용하는 번호 - '/etc/services' => 각 서비스별로 포트 번호가 무엇인지를 정의하는 것 - '/etc/services' 파일에 저장된 포트 번호는 국제 표준으로 합의하여 사용 - 사용자가 개발한 네트워크 프로그램은 이 파일에 정의되지 않은 번호를 사용하여 서비스를 제공 |