1. 프로토콜의 이해
- 인터넷의 기본 프로토콜인 TCP/IP
- 원하는 웹사이트의 웹페이지를 볼 수 있는 HTTP
- 인터넷을 사용하여 이메일을 주고받으려면 SMTP나 POP3 등 프로토콜을 사용
- 인터넷을 이용하여 자료나 파일을 업로드 하거나 다운로드하려면 FTP 등 프로토콜을 사용
- 프로토콜은 네트워크에 연결된 컴퓨터끼리 데이터를 주고 받을 수 있도록 미리 약속한 전송규약(규칙)을 말한다.
2. 네트워크 계층 프로토콜
- TCP/IP 프로토콜에서 네트워크 계층 프로토콜은 IP, ARP, ICMP, IGMP로 구성
- 전송 계층의 패킷은 세그먼트 형태로 네트워크 계층으로 전송
- 네트워크 계층의 데이터는 IP 헤더가 추가된 IP 데이터그램으로 동작
▶ ARP
- IP 주소를 받아 네트워크 카드의 물리 주소인 MAC 주소로 변환시켜주는 프로토콜
▶ RARP ( Reverse ARP )
- 물리 주소인 MAC 주소를 IP 주소로 변환시켜주는 역주소 변환 프로토콜
▶ 주소 변환 프로토콜
- 논리적 주소인 IP 주소를 물리적 주소인 MAC 주소로 매핑시켜주는 것이 바로 ARP(Address Resolution Protocol)
▶ IP 주소와 MAC 주소 매핑
- A 컴퓨터에서 C 컴퓨터로 신호를 전송한다고 가정해 보자.
- 각 호스트의 IP 주소와 MAC 주소가 밑에 그림과 같을 때, IP 주소로 MAC 주소를 매핑시키는 절차는 다음과 같다.
▶ MAC 주소로 데이터 전송 ( ARP )
- A 호스트에서는 C 호스트의 MAC 주소를 알아내면 다음 과정을 거쳐 A에서 작성한 메세지를 C로 전송 할 수 있다.
▶ 역주소 변환 프로토콜 ( RARP )
- 호스트 컴퓨터의 물리 주소를 알고 있을 때 IP 주소를 알아내는데 사용한다.
- 컴퓨터를 네트워크에 처음 연결할 때나 디스크가 없는 컴퓨터를 부팅할때 사용하는 프로토콜이다.
- RARP(Reverse Address Resolution Protocol)는 이더넷, 토큰링 FDDI 등 근거리 통신망에서 사용할 수 있다.
▶ 인터넷 제어 메시지 프로토콜 ( ICMP )
- 네트워크의 호스트나 라우터에서는 예상치 못한 상황이나 오류가 발생할 수 있다.
- 이때 라우터에서 발생한 오류를 송신 측으로 전송하는데 사용하는 프로토콜이 바로 ICMP(Internet Control Message Protocol)이다.
- ICMP는 네트워크 계층에서 상주하지 않고, IP 데이터그램에 캡슐화되어 인터넷으로 전송된다.
- 타입 : ICMP 메시지의 종류를 15개의 서로 다른 값으로 명시한다.
- 코드 : 메시지의 종류를 타입보다 좀 더 세분화하는 추가적인 코드
- 검사합 : 메시지 오류 검사 기능을 한다.
- 나머지 헤더 : 타입과 코드 값에 따라 변경
⊙ ICMP 질의 메시지
- ICMP는 질의하거나 응답하여 정보를 구하는데 사용할 수 있으며, 이런 유형을 '질의 메시지'라고 한다.
⊙ ICMP 오류 메시지
- 가장 일반적인 ICMP 메시지로 전송을 시도할 때나 IP 데이터그램 전송 도중에 발생하는 다양한 형태의 오류 상태를 통보한다.
▶ 인터넷 그룹 메시지 프로토콜 ( IGMP )
- IGMP(Internet Group Message Protocol)은 인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알릴 수 있는 수단을 제공하는 프로토콜이다.
- 멀티캐스팅을 네트워크의 한 호스트 컴퓨터가 미리 지정된 다수의 컴퓨터에 메시지를 보낼 수 있도록 허용한다.
- IGMP는 멀티캐스트 라우터가 주기적으로 서브넷 호스트 컴퓨터 그룹에 IGMP 쿼리 메시지를 전송하고, 호스트 컴퓨터는 IGMP 쿼리 메시지에 응답하며 자신이 가입하려는 그룹 주소 정보를 IGMP 리포트 메시지를 이용하여 라우터에 알려주는 방식으로 동작
3. 전송 계층 프로토콜
- 전송 계층에서는 패킷 단위로 데이터를 전송하는데, 이 역할을 수행하는 기본 프로토콜은 전송 제어 프로토콜인 TCP와 사용자 데이터그램 프로토콜인 UDP다.
- 데이터를 송수신할 때 UDP나 TCP 중 어느 것을 사용하든지 상관없으나, UDP는 패킷의 확실한 전송을 보장하지 못하는 반면 TCP는 패킷의 확실한 전송을 보장한다.
▶ SPX
- NetWare의 연결 지향 프로토콜로, 패킷 접수 통지와 흐름 제어 등 TCP와 유사한 기능을 한다.
- NetWare 서버들은 프린트 큐 사이에서 프린트 서버 및 프린터 간의 통신에 SPX를 주로 사용하며, 인터넷 통신에는 거의 사용하지 않는다.
- SPX 패킷은 42바이트 헤더와 최대 534바이트 데이터로 구성되므로, 크기는 42~576바이트다.
- 연결제어(Connection Control) : 8비트 크기, 제어 기능 메시지를 포함
- 데이터 스트림 유형(Data Stream Type) : 8비트 크기, 데이터 영역의 정보 데이터 유형이나 연결 종료 과정에서 사용하는 코드 등을 포함
- 송신지 연결 ID(Source Connection ID) : 16비트 크기, 송신 시스템이 현재의 연결을 구별하는데 사용하는 수를 포함
- 수신지 연결 ID(Destination Connection ID) : 16비트 크기, 수신 시스템이 현재의 연결을 구별하는데 사용하는 수를 포함
- 순서 번호(Sequence Number) : 16비트 크기, 일련의 데이터 패킷 중에서 이 패킷의 위치를 지정
- 확인 일련번호(Acknowledgement Number) : 16비트 크기, 수신 시스템이 다음에 받을 패킷의 일련번호를 포함
- 위치 번호(Allocation Number) : 16비트 크기, 수신 시스템이 사용할 수 있는 패킷 수신버퍼의 크기를 나타낸다.
- 데이터(Data) : 응용 프로그램이나 상위 계층 프로토콜이 만든 데이터 정보, 크기는 가변적
▶ NCP
- SPX가 프린트 관련 작업을 담당한다면, NCP는 NetWare 클라이언트와 서버 간의 파일공유 등 다양한 네트워크 기능을 담당한다.
- TCP/UDP나 SPX와는 달리 서로 다른 포맷을 사용하며, 최근에는 NCPB라는 NCP 메시지로 메시지 여러 개를 한꺼번에 전송할 수 있는 기능도 구현하고 있다.
- NCP는 이런 여러 포맷의 메시지를 이용하여 클라이언트와 서버 간에 해석기 또는 번역기의 기능을 제공한다.
- 요청 유형(Request Type) : 16비트 크기, 요청 메시지의 종류를 나타낸다. 서비스 연결생성과 파일 서버 요청 등의 종류가 있다.
- 일련번호(Sequence Number) : 8비트 크기, 현재 메시지의 순서를 나타낸다.
- 연결 번호 로(Connection Number Low) : 8비트 크기, NetWare 서버에 연결된 클라이언트의 수를 나타낸다.
- 작업번호(Task Number) : 8비트의 유일한 값으로, 서비스를 요청하는 작업이 무엇인지를 구분하는 수다. 시스템은 전송받은 응답 메시지를 요청한 작업에 반환할때 이 값을 사용
- 연결 번호 하이(Connection Number High) : 8비트 크기, 현재 사용하지 않는다.
4. 응용 계층 프로토콜 및 서비스
▶ 프로토콜
- 응용 계층에서 제공하는 프로토콜에는 TCP 응용 계층 프로토콜인 FTP, HTTP, Telnet, SMTP, POP3, IMAP와 UDP 응용 계층 프로토콜인 DHCP, SNMP 프로토콜이 있다.
▶ FTP ( TCP 포트 : 21 )
- FTP는 인터넷에서 파일을 전송하는 기본 프로토콜이다.
- 파일을 전송하는 접속 대상인 컴퓨터를 '서버'라고 하며, 접속하려는 사용자의 컴퓨터를 '클라이언트'라고 한다.
- FTP 클라이언트는 자신의 소스 포트로 1023보다 큰 임의의 번호를 사용하며, FTP 서버의 포트 번호는 21을 사용한다.
- FTP 클라이언트 프로그램을 이용하여 접속하려는 서버의 주소(IP나 도메인)을 입력하여 접속이 완료되면 파일을 업로드하거나 다운로드할 수 있다.
▶ HTTP 서비스 ( TCP 포트 : 80 )
- HTTP는 클라이언트의 웹브라우저가 서버에 웹서비스를 요청(Request)하면, 서버가 적절한 응답(Response)을 하여 클라이언트의 사용자에게 웹페이지를 제공하는 서비스다.
- 즉, HTTP는 서버와 클라이언트 간에 하이퍼텍스트 문서를 송수신하는 프로토콜이다.
- HTTP 1.0에서는 전송받을 문서에 이미지가 있으면, 문서를 받을 때와 이미지를 받을 때 각각 연결을 설정한다.
- HTTP 1.1에서는 다시 연결을 설정하지 않고 연결된 소켓을 통해 데이터(이미지)를 전송 받는데, 프로토콜의 수행 성능이 향상된 것을 확인
▶ SMTP와 POP3, IMAP
- TCP/IP 프로토콜에서는 클라이언트와 메일 서버, 메일 서버와 메일 서버 간에 이메일을 교환하려고 SMTP와 POP3, IMAP를 사용한다.
- 메일 서버 간의 이메일을 SMTP로 교환하며, 메일 서버와 클라이언트 간에는 이메일 전송 과정에 따라 SMTP와 POP3 또는 IMAP를 각각 따로 사용한다.
⊙ SMTP ( TCP 포트 : 25 )
- 네트워크의 두 메일 서버 간에 이메일을 송수신하는데 사용하는 TCP/IP 프로토콜이다. 응용계층에 속하며, 전송 계층의 TCP에 기반을 둔 프로토콜이다.
- 사용자가 이메일을 메일 서버로 보낼 때는 SMTP를 사용하고, 메일 서버에서 자신의 이메일을 다운로드 할때는 POP3나 IMAP를 사용
⊙ POP3 ( TCP 포트 :110 )
- 이메일을 수신하는 표준 프로토콜로, POP의 최신 버전이다.
- 이메일을 수신하고 보관하려고 인터넷 서버에서 사용하는 프로토콜로 TCP/IP의 응용 계층에 속하며, SMTP에 의존한다.
⊙ IMAP ( TCP 포트 : 143 )
- 이메일을 저장, 복사하는 프로토콜이다.
- POP3처럼 SMTP 프로토콜에 의존하지만, POP3와 달리 IMAP에서는 내 컴퓨터에서 지운 이메일도 서버에 남아 있어 언제 어디서든 이메일을 다시 볼수 있다.
▶ SNMP ( UDP 포트 : 161 )
- 다른 네트워크 장치를 원격에서 관리할 수 있는 간단한 방법을 제공하는 인터넷 표준 프로토콜이다.
- 이 프로토콜을 적용할 수 있는 네트워크 장치에는 네트워크 카드나 프로그램, 허브나 라우터 같은 네트워크 장치 등이 있다.
- 네트워크를 관리하는 중앙 관리 시스템과 네트워크를 관리하는데 사용하는 개쳬정보인 MIB(Management Information Base)로 구성
- 중앙 관리 시스템은 네트워크를 관리하려고 하나 이상의 MIB를 모니터할 수 있다.
▶ DHCP ( UDP 포트 : 67, 68 )
- 네트워크의 각 노드에 유일한 IP 주소를 자동으로 할당하고 관리하는 서비스
- 관리자는 DHCP로 IP 주소를 관리하는 시간과 노력을 크게 줄일 수 있을 뿐만 아니라 IP 주소 할당 과정에서 발생할 수 있는 잠재적인 오류도 줄일 수 있어 네트워크의 효율이 높다.
- DHCP 서버가 동작하면 클라이언트들은 그 서버에 연결하여 유일한 IP 주소를 제공받는데, 그 과정은 다음과 같다.
▶ Ping 서비스
- TCP/IP에서 널리 사용하는 서비스 중 하나로, 모든 TCP/IP 설치에 포함되어 있다.
- 네트워크에 있는 다른 시스템에서 TCP/IP가 정상적으로 동작하는지 알려주는 프로그램
- ICMP를 사용하여 일련의 에코 메시지를 만들어 지정한 컴퓨터 이름이나 IP 주소 시스템에 전송한다.
- 이때 두 시스템 간에 에코 메시지를 주고받는 과정을 '핑잉(Pinging)'이라고 한다.
- 호스트의 IP 주소가 192.168.0.7이고, 게이트웨이 주소가 192.168.0.88이며, 수신지 IP주소가 58.142.193.69일 때 다음 과정을 거치면 어디에서 문제가 발생했는지 확인할수 있다.
① ping 127.0.0.1 또는 ping localhost
② ping 192.168.0.7
③ ping 192.168.0.88
④ ping 58.142.193.69
▶ Telnet ( TCP 포트 : 23 )
- 인터넷을 이용하여 내 컴퓨터에서 상대방의 컴퓨터를 원격으로 제어할 수 있도록 해주는 명령 라인 클라이언트/서버 프로그램