요점
- 프로토콜 구조란 시스템 간의 데이터 교환, 전자우편, 파일 전송 등의 분산 응용을 지원하기 위한 하드웨어와 소프트웨어의 계층 구조이다
- 프로토콜 구조의 각 계층에서는 하나 또는 그 이상의 프로토콜들이 통신 시스템에 구현되어 있다. 각 프로토콜들은 시스템 간의 데이터 교환을 위한 규칙들을 제공한다.
- 가장 많이 사용디고 있는 프로토콜은 TCP/IP 프로토콜이다. TCP/IP 프로토콜은 물리, 네트워크 접속, 인터넷, 수송, 그리고 응용계층으로 구성되어 있다.
- 또 다른 중요한 프로토콜 구조는 7계층 OSI 모델이다.
2.1 프로토콜 구조의 필요성
-
발신 시스템은 데이터 전송로를 직접 가동시키든지, 또는 목적지 시스템의 식별자를 통해 통신망에 알려주어야 한다.
-
발신 시스템은 목적지 시스템이 데이터를 받을 준비가 되어 있는가를 확인해야 한다.
-
발신 시스템에 존재하는 파일 전송 응용 프로그램은 목적지 시스템에 존재하는 파일관리 프로그램이 파일을 받아 저장할 준비가 되어 있는 가를 확인해야 한다.
-
두 시스템에서 사용되는 파일 형식이 다를 경우, 하나의 시스템은 형식 변환 기능을 수행해야 한다.
통신이 이루어지기 위해서는 두 시스템에서 상호 대응하는 동일한 계층 동료가 존재해야 한다. 동료 계층들은 프로토콜이라 불리는 정해진 규칙에 따라 정해진 형식의 데이터블록들을 교환함으로써 통신한다.
- 구문론(syntax): 데이터 블록의 형식을 다룸
- 의미론(semantics) : 조정과 오류관리를 위한 제어 정보를 다룸
- 타이밍(timing) : 속도조절과 순서 조정을 다룬다
2.2 간단한 프로토콜 구조
분산 데이터 통신 : 응용, 컴퓨터, 네트워크 등의 3개의 에이전트 포함 응용 -> 두 컴퓨터 시스템 사이에 데이터를 교환하는 분산 응용을 의미, 컴퓨터에서 여러 개의 다른 응용과 동시에 수행 ex) 파일 전송, 전자 우편 네트워크 접속 계층 : 종단시스템과 그것이 부착된 네트워크 사이의 데이터 교환을 다룬다. 수용계층 : 신뢰성 있게 데이터 교환 - 이러한 신뢰성 제공하는 기법 -> 하나의 공통계층에 모아두고 모든 응용이 공유하는 것이 합리적. 응용계층 : 다양한 사용자 응용을 지원하기 위해 필요한 작업을 다룸
서브네트워크 상의 모든 호스트는 반드시 유일한 인터넷 주소를 가지고 있어야 한다. -> (데이터가 올바른 호스트로 전송할 수 있도록) 호스트 내의 모든 프로세스는 호스트에서 유일한 주소를 가지고 있어야 한다. 이 주소는 데이터가 올바른 호스트로 전송할 수 있도록 해준다. 그리고 호스트 내의 모든 프로세스는 유일한 주소를 가지고 있어야 한다. 이 주소는 수송 계층 프로토콜이 올바른 프로세스로 데이터를 전송하는데 이용된다. 두 번째 주소는 각 응용이 수송 계층의 서비스를 개별적으로 접근한다는 의미에서 서비스 접속점(SAP) 또는 포트(Port)라고 불린다.
수송 계층 -> 데이터 블록을 편의상 두 개의 작은 조각으로 나눌 수도 있다. (이 각 조각에 수송 계층 헤더라고 하는 프로토콜 제어 정보를 붙인다)-> 데이터에 이러한 제어 정보를 붙이는 작업을 캡슐화라고 한다.
프로토콜 데이터 유닛(PDU): 상위 계층에서 내려온 데이터에 이러한 제어 정보를 결합한 것을 프로토콜 데이터 유닛 이라고 한다, 이 경우 수송계층 PDU가 되며 일반적으로 세그먼트라고 부른다. 이 헤더에 포함되는 항목
- 발신지 포트 : 데이터를 보낸 응용을 가르킨다
- 목적지 포트 : 목적지 수송 계층이 세그먼트를 받았을 때, 데이터가 어떤 응용으로 전달되어야 하는지를 알아야 한다.
- 순서 번호 : 수송 계층 프로토콜이 특정 목적지 포트로 세그먼트를 순차적으로 전송할 경우 세그먼트의 번호를 붙인다. 따라서 만약 순서에 어긋나게 데이터가 도착했을 경우, 목적지의 수송 계층 프로토콜은 이들의 순서를 바로잡는다.
- 오류 검출 코드 : 송신측 수송 프로토콜은 세그먼트의 내용을 가지고 연산하여 코드를 만들어 붙인다. 수신측 수송 프로토콜은 똑같은 연산을 하여 그 결과를 수신된 코드와 비교한다. 만약 전송되는 과정에 오류가 발생한다면, 그 결과는 일치하지 않는다. 이 경우, 수신측은 그 세그먼트를 폐기하고 복구절차를 밟는다. 이러한 코드를 체크섬 또는 프레임 체크 시퀀스라고 부른다.
네트워크 접속 프로토콜(NAP)은 수송 계층으로부터 받은 데이터에 네트워크 접속 헤더를 부착하여 네트워크 접속 PDU를 만든다. 이 PDU는 패킷이라 불린다. 이 헤더에 포함되는 항목에는 다음과 같은 것이 있다.
- 발신지 컴퓨터 주소 : 이 패킷의 발신자를 가리킨다.
- 목적지 컴퓨터 주소 : 네트워크는 어떤 컴퓨터에게 패킷을 보내야 하는지 알아야 한다.
- 서비스 요청 : 네트워크 접속 프로토콜은 우선순위와 같은 서브 네트워크 서비스의 사용을 요청할 수 있다.
2.3 TCP / IP 프로토콜 구조
일반적으로 TCP/IP 프로토콜 스위트(suite)로 불린다. (스위트 : 인터넷 표준으로 채택된 많은 프로토콜로 이루어진다.)
- 물리 계층 ex) 트위스티드 페어, 광섬유, 위성, 지상 마이크로웨이브
- 네트워크 접속 계층 ex) 이더넷, 와이파이 ,ATM, 프레임 릴레이
- 인터넷 계층 ex) IPv4, IPv6
- 호스트-호스트 또는 수송 계층 ex) TCP, UDP
- 응용 계층 ex) SMTP , FTP , SSH , HTTO
물리계층 : 데이터 전송장치(워크스테이션, 컴퓨터)와 전송 매체 또는 네트워크 사이의 물리적인 인터페이스를 다룬다. 이 계층은 전송 매체의 특성, 신호의 특성, 데이터율 및 관련사항을 규정한다.
네트워크 접속 계층 : 같은 네트워크에 접속된 2개의 종단 시스템을 위하여 네트워크를 통해 데이터를 접속하고, 또한 배달하는 것을 다룸
인터넷 계층 : 2개의 장치가 다른 네트워크에 접속되어 있는 경우에 상호 연결된 네트워크를 통과하도록 하는 절차가 필요하게 된다. 이것이 인터넷 계층의 기능이다.
호스트-호스트 계층 또는 수송 계층 : 종단 간에 신뢰적인 전송서비스를 제공하거나 신뢰성을 고려하지 않고 단순히 종단 간 배달 서비스만을 제공하기도 함
응용 계층 : 다양한 사용자 응용을 지원하기 위해 필요한 작업을 다룸
TCP와 IP의 동작
전체 통신 시설이 여러개의 네트워크로 구성된다는 것을 명확히 하기 위하여, 각각의 성분 네트워크를 보통 서브네트워크라고 한다.
서브네트워크 상의 모든 호스트는 반드시 유일한 주소를 가져야 함. 이 주소는 데이터가 올바른 호스트로 전송할 수 있도록 해준다. 그리고 호스트 내의 모든 프로세스는 호스트에서 유일한 주소를 가지고 있어야 한다.
TCP 헤더라고 하는 제어 정보를 붙여 TCP 세그먼트를 만드는 과정
-> TCP 세그먼트를 호스트 B에 전송하라는 명령과 함께 세그먼트를 IP에 넘기면, IP는 각 세그먼트에 제어 정보를 담은 헤더를 붙여서 IP 데이터그램을 만든다. 이 IP 헤더에 들어가는 항목에는 목적지 호스트 주소가 있다.
(이 내용 어렵다.)
TCP와 UDP
TCP/IP 프로토콜 구조상 대부분 응용들은 수송 프로토콜로 TCP를 사용. TCP는 응용 계층에게 신뢰성 있는 데이터 전송을 보장하는 논리적인 연결 제공 연결은 다른 시스템에 있는 두 개체 사이에 설정되는 일시적인 논리적 연관을 뜻한다. 논리적 연결은 한 쌍의 포트 값을 의미한다. 연결이 지속되는 동안, 각 개체는 다른 개체로(부터) 들어오고 나가는 TCP 세그먼트를 추적하여 흐름을 제어하고 분실되거나 훼손된 세그먼트들을 복구한다.
TCP외에 UDP(User Datagram Protocol)라는 널리 사용되는 또 다른 수송 프로토콜이 존재한다. UDP는 최소한의 프로토콜 기법을 이용하여 한 프로시저가 다른 프로시저들에게 메시지를 보낼 수 있도록 해준다. 트랜잭션 기반 응용들이 UDP를 사용한다.
IP와 IPv6
수십 년 동안 TCP/IP 프로토콜 구조의 중심은 IP 수송 계층에서 내려오는 세그먼트와 함께 IP 데이터그램 또는 IP 패킷이라 불리는 IP 단계의 PPU를 구성
헤더에는 32비트의 발신지와 목적지 주소가 들어있다. 헤더체크섬 필드 -> 잘못 배달 되는 것을 막기 위한 오류검출에 사용 프로토콜 필드 -> 어떤 상위 계층이 IP를 사용하는지를 지정하는데 사용 IP, Flag, Fragment , offset 필드는 분할 및 재조립 과정에 사용
Ipv6 -> 128비트의 발신지 및 목적지 주소필드를 갖는다.
- TCP 헤더
-
UDP 헤더
-
IPv4 헤더
- IPv6 헤더
- 프로토콜 인터페이스
TCP/IP 프로토콜에서 각 계층 -> 인접계층과 상호동작 발신자의 응용계층 -> 종단 간의 계층의 서비스를 이용. 데이터를 그 계층으로 전달 목적지의 각 계층은 데이터를 바로 다음 상위계층으로 올린다.
그림 2.5(데이터 유닛 PDU)처럼구조적으로 반드시 각 계층을 이용하지 않을 수도 있다. 어떤 계층이든 바로 호출하는 응용 개발 가능하다. 대부분의 응용이 신뢰성 있는 종단 간의 프로토콜을 필요로 하기 때문이다. -> 일반적으로 TCP 사용 특수 목적의 응용일 경우 TCP 필요 x ex) SNMP의 경우 TCP 대신 UDP 사용. 어떤 응용 -> IP를 직접 이용하기도
프로토콜 구조 내에서의 표준
TCP/IP 구조나, OSI 같은 프로토콜 구조 -> 표준화 작업에 대한 틀을 제공
- 각 계층의 기능이 잘 정의되어 있으므로, 각 계층에 대한 표준화 작업이 상호 독립적으로, 동시에 이루어질 수 있다. => 표준화 작업이 빨리 진행 가능
- 각 계층 간의 경계가 잘 정의되어 있으므로, 한 계층의 표준변화는 이미 존재하는 다른 계층에 영향을 미치지 않음 -> 새로운 표준의 개발 용이
OSI layers
-> 전체 기능을 여러 개의 모듈로 나누고, 모듈 사이의 인터페이스를 최대한 간단하게 - 여기에 정보 은닉 이라는 기법이 이용. 하위 계층일수록 더욱더 세분화된 기능을 다룸. 상위 계층은 이러한 하위계층의 상세한 내용에 대해서는 독립적. 그리고 각 계층은 상위 계층에 서비스를 제공하고 다른 시스템의 동료계층에 프로토콜을 구현
OSI vs TCP/IP
복습문제
- 2.1 네트워크 접속 계층의 주요 기능은 무엇인가?
-> 종단시스템과 그것이 부착된 네트워크 사이의 데이터 교환을 다룬다. 송신 컴퓨터는 네트워크에 목적지 컴퓨터의 주소를 제공하며 해당 목적지까지 데이터를 배달하게 된다. 송신 컴퓨터는 우선순위와 같은, 네트워크에 의해 제공되는 어떤 서비스를 원할 수 있다. 이 계층에서 사용되는 특정 소프트웨어는 사용되는 네트워크의 종류에 따라 다르다 ex)회선 교환 패킷교환 LAN, 기타에 대해 서로 다른 표준들이 개발되어 있음
- Q) 종단 시스템이란 ? -> 개방형 시스템 간 상호 접속 (OSI)에서 규정한 모든 계층(7계층)을 갖춘 시스템. 다시 말하면 네트워크에서 서로 통신하는 송신 시스템과 수신 시스템을 말하며 보통 구내정보통신망(LAN)에서는 국(station), 광역통신망(WAN)에서는 컴퓨터(host)라고 부르기도 한다.
- 2.2 수송계층에 의해 수행되는 작업은 무엇인가?
- 통상 데이터는 신뢰성 있게 교환되어야 한다. 이러한 기법을 하나의 공통 계층에 모아두고 모든 응용이 공용하는 것이 합리적인데 이를 수송계층이라고 한다. 전송 제어 프로토콜은 이 기능을 제공하는데 있어 가장 흔하게 사용되는 프로토콜이다.
- 2.3 프로토콜이란 무엇인가?
- 컴퓨터 간에 정보를 주고 받을 때의 통신 방법에 대한 규칙과 약속이다. 통신규약이라 함은 상호간의 접속이나 전달방식, 통신방식, 주고받을 자료의 형식, 오류검출 방식, 코드 변환방식, 전송속도 등에 대하여 정하는 것. 일반적으로 기종 다른 컴퓨터는 통신규약도 다르다.
- 2.4 PDU란 무엇인가?
- OSI 7계층 모델의 각 계층에서 규격화된 데이터는 다음과 같이 고유 명칭이 있다. 계층에 상관없이 사용할 때는 통칭하여 PDU(Protocol Data Unit)라고 부른다.
- APDU : 응용계층에서 사용하는 데이터 단위
- PPDU : 표현계층에서 사용하는 데이터 단위
- SPDU : 세션계층에서 사용하는 데이터 단위
- TPDU : 전송계층에서 사용하는 데이터 단위 TCP에서는 세그먼트라고 부르고, UDP에서는 데이터그램이라고 ㅜㅂ른다
- NPDU : 네트워크에서 사용하는 데이터의 단위 보통 패킷이라고 부른다.
- DPDU : 데이터 링크 계층에서 사용하는 데이터 단위, 보통 프레임이라고 부른다.
- 2.5 프로토콜 구조란 무엇인가?
- 통신작업을 상대적으로 독립적인 물리 계층, 네트워크 접속 계층, 인터넷 계층, 수송 계층, 응용 계층으로 구성하는 것을 말한다.
- TCP/IP는 무엇인가?
- 서로 다른 시스템을 가진 컴퓨터들을 연결하고, 데이터를 전송하는데 사용하는 통신 프로토콜들의 집합
- 인터넷에서 전송되는 정보나 파일들이 일정한 크기의 패킷들로 나뉘어 네트워크 상 수많은 노드들의 조합으로 생성되는 경로들을 거쳐 분산적으로 전송되고, 수신지에 도착한 패킷들이 원래의 정보나 파일로 재조립하도록 하는게 바로 TCP/IP의 기능이다.
- TCP/IP 구조에서 보이는 계층 구조의 장점
- OSI계층 구조에 비해 네트워크 환경 및 서비스 유형에 따라 다양한 프로토콜을 도잇에 허용. 계층간의 호호환 가능 반면 OSI 계층 구조는 각 계층의 독립성과 인접계층 간의 인터페이스를 잘 저의하고 있지만, 계층 간의 프로톸로의 복잡성과 형식의 틀에 얽매여 상황에 신속하게 대처하기 어렵다는 단점
참고자료
데이터 통신 및 컴퓨터 통신 - william stallings 지음 한기준 , 김종근 옮김