http://blog.naver.com/ksh81850/220003454989
● 일반적인 인터넷
- TCP/IP 프로토콜을 사용한다.
- 프로토콜 : 다양한 Network 장치들이 서로 데이터를 교환할수 있도록 도와주는 일종의 약속
- 원격지에 있는 Host 상호간 정확하고 효율적으로 데이터 전송에 필요한 모든 약속.
- Host : 네트워크에 연결된 컴퓨터를 의미
● 다양한 운영체제
- 유닉스, 리눅스, 윈도우 등 다양한 운영체제는 사용하는 네트워크가 각각 다른 형태이다. 때문에 서로 데이터 공유가 어렵다. 이러한 문제 해결을 위한 것이 TCP/IP 프로토콜이다.
- 현 모든 데이터가 TCP/IP 프로토콜에서 약속된 형태로 전송되므로 운영체제 및 시스템에 상관없이 데이터 교환 가능하다.
● TCP/IP의 기본적인 특징
- 네트워크 기술의 독립성
- 시스템과 운영체제 관계없이 통신 가능
- 전송 데이터의 규격 표준화.
- 임의의 상호 접속
- 네트워크 연결된 시스템 상호간 인식 가능한 고유의 주소 할당.
- 고유의 주소를 통한 컴퓨터간 통신 가능
- 송 . 수신자의 응답
- 각개의 송.수신자가 별개의 네트워크에 존재한들, 데이터 교환 가능
- 공통의 응용 프로그램 제공
- TCP/IP 규격에 맞는 응용 프로그램 다수 존재
- 해당 프로그램 사용시 어디든 통신 가능
● OSI 7계층구조
- 국제 표준화 기구(ISO: International Standards Organization)는 서로 다른 시스템간의 원활한 통신을 위해 OSI(Open System Interconnection) 7계층이라는 프로토콜 제정.
- 다음과 같은 구조로 구성되어 있다.
응용 계층(Application Layer) |
표현 계층(Presentation Layer) |
세션 계층(Session Layer) |
전송 계층(Transport Layer) |
네트워크 계층(Network Layer) |
데이터 링크 계층(Datalink Layer) |
물리 계층(Physical Layer) |
- 필자는 다음 7개의 계층의 순서를 '물데네트세표응' 이란 순서로 외웠다.
- 위의 7계층은 실제 사용보다 프로토콜 개발에 필요로한 표준의 성향이 크다.
● TCP/IP 계층구조
-OSI 7계층은 실 사용보다 프로토콜 개발하는데 필요한 성향이 크다. 실 인터넷 사용하는 프로토콜은 TCP/IP이다.
- TCP/IP는 기능별로 4계층으로 구성되어있다.
계층 |
기능 |
응용 계층(Application Layer) |
User에게 실제 데이터 전달 기능 |
전송 계층(Transport Layer) |
데이터의 신뢰성있는 전송 보장 기능 |
인터넷 계층(Internet Layer) |
데이터 전송 경로 정하는 기능 |
네트워크 접속 계층 (Network Interface Layer) |
물리적 데이터 전송 방법 정의 |
- 위 4개의 계층은 하드웨어와 많은 연관이 있다.
- Java를 통해 네트워크 프로그램 개발시 응용 계층(Application Layer)를 주로 다룬다. 패키지는 Java.net.* 패키지를 이용한다
● TCP/IP 계층의 프로토콜 종류
- 응용 계층(Application Layer) : SMTP, FTP, Telnet, HTTP, NNTP 등
- 전송 계층(Transport Layer) : TCP, UDP
- 인터넷 계층(Internet Layer) : IP, ICMP
- 네트워크 접속 계층 : Ethernet, 토큰링, X.25, 디지털 회선 등
(Network Interface Layer)
● IP(Internet Protocol)
- 컴퓨터간 통신하기 위해 상대의 정확한 주소(IP 주소) 가 필요
- IP주소는 고유의 번호를 전 세계 컴퓨터에게 부여한 것.
- 상호 연결된 네트워크 통해 데이터 전송하는데 필요한 기능 제공.
- IP의 숫자 외우는 것이 어려워 도메인 네임을 통해 쉽게 접근 가능.
- 널리사용하는IP주소는 IPv4는 000.000.000.000 처럼 값 4개로 구성된 32Bit 주소이다.
- IP주소는 네트워크 식별자와 호스트 식별자로 나뉘어진다.
- IPv4의 한계를 극복하기 위해 만들어 낸것이 IPv6이다.
● 인터넷의 클래스
- 네트워크 식별자와 호스트 식별자 크기에 따라 구분한다
- 클래스 A :
- 많은 호스트 가진 큰 네트워크에서 사용.
- 네트워크 식별자 8Bit, 호스트 식별자 24Bit
- 클래스 B :
- LAN과 호스트 포함한 분산 처리 시스템 사용.
- 네트워크 식별자 16Bit, 호스트 식별자 16Bit
- 클래스 C :
- 일반적 LAN과 같은 소규모 네트워크 사용
- 네트워크 식별자 24Bit, 호스트 식별자 8Bit
- 클래스 D :
- 멀티 캐스팅위해 사용
- 네트워크 식별자와 호스트 식별자 구분이 없다
- 클래스 E :
- 장래에 사용하기 위해 사용이 유보
● Port 번호
- Port는 물리적 존재하는 연결 통로가 아닌 서비스를 구분하여 처리하기 위한 연결 통로
- IANA의해 예약되거나 이미 정해진 포트(Well-Known Port) - 0 ~ 1023
- IANA의해 등록된 포트 및 일반적 사용자가 사용하게 될 포트 - 1024 ~ 49151
- 동적으로 할당 및 사적으로 사용 될 포트 - 49152 ~ 65535
- 대표적인 Well-Known Port
- HTTP : 80번
- FTP : 21번
- TELNET : 23번
- SMTP : 25번
- Gopher : 70번
※ IANA : Internet Assigned Numbers Authority로서 인터넷 할당 번호 관리 기관이다.
● TCP/IP 전송 계층 연결형
- TCP(Transmission Control Protocol) - 패킷(Packet) 단위로 전송
- OSI 4계층(전송계층)과 동일한 기능 담당하는 프로토콜
- 송 수신자가 연결된 상태에서 데이터 전송 가능
- 호스트 사이에 신뢰성 경로 확립하고 메세지 전송 감독 기능
- 수신자가 정상 수신 신호(ACK : Acknowledge). 받지 못하면 에러 발생으로 판단하여 재전송.
- 데이터의 분실, 손상, 중복, 지연, 순서 틀린것 등 발생시, 투명성 보장되는 통신 제공
- 데이터 전송, ACK 신호 전송때문에 UDP에 비해 네트워크 부하가 큼
- 신뢰성 보장되어야 하는 Web, 전자우편, FTP와 같은 서비스에 사용
(FTP, Telnet, SMTP, POP3, HTTP 등)
● TCP/IP 전송 계층 비연결형
- UDP(User Datagram Protocol) - 패킷(Packet) 단위로 전송
- 송 수신자 사이 연결시킨 후 데이터를 전송하는 것이 아닌 수신자에게 데이터 전송에 목적을 둠
- 실제 송 수신자 연결 기능은 IP가 담당하므로 전송 계층에 있는 프로토콜은 연결 관리하는 기능 수행(연결 관리 기능이 없다)
- 신뢰성없는 데이터 전송 수행. ACK 신호 사용 하지 않음.
- 데이터 순서, 분실, 중복 등 제어 수행 하지 않음
- 네트워크 부하가 적다.
- 데이터 순서와 신뢰성 중시하지 않고 대량의 데이터 전송하는 서비스에 사용