01 계층 구조의 개념
02 OSI 참조 모델
03 TCP/IP 모델
01 계층 구조의 개념
1. 계층적 모델 구조
-일반적으로 복잡하고 큰 시스템의 기능은 특정 단위의 모듈로 나누어 설계한다. 모듈은 독립적으로 동작하면서도 상호 유기적으로 통합될 수 있어야 하므로 모듈 간 사이에 인터페이스가 필요
1.1 모듈화
ex) 컴퓨터 하드웨어는 CPU, 메모리, 등과 같은 부품으로 시스템을 구성 / 소프트웨어에서는 함수 개념
1.2 계층 구조
-->(서비스 요청)
상위 계층 하위 계층
<--(서비스 제공)
2. 프로토콜 설계 시 고려 사항
2.1 주소 표현
: 호스트를 유일하게 구분하는 용도로 사용
-여러 호스트가 연결된 환경에서 특정 호스트끼리 통신하려면 상대방을 구분할 수 있는 방법이 필요한데 시스템을 구분하여 지칭하기 위하여 주소 체계에서 이름을 부여한다.
-보통 호스트에도 주소를 하나씩 부여하지만 , 다수의 호스트를 묶어 하나의 그룹 주소로 표기하는데 (1:다) 통신의 유형으로 네트워크에 연결된 모든 호스트에 데이터를 전송하는 브로드캐스팅(Broadcasting) 표기방법
특정 사용자를 그룹으로 묶어서 지칭하는 멀티캐스팅(Multicasting) 표기 방법이 있다.
ex) 넷플릭스 유료회원
브로드 캐스트 - 1:다(집단)
멀티 캐스팅 - 1: 다(특정 호스트 집단)
유니 캐스트 - 1:1
2.2 오류 제어(Error Control)
: 전송 과정에서 데이터 분실, 데이터 변형 등의 오류가 발생했을 때 데이터를 복구하는 데 사용
-1계층의 전송 매체에 의한 물리적인 오류
이를 해결하기 위해 2 계층이 물리적인 전송 오류를 해결하고 상위 계층의 프로토콜이 수행될 때는 논리적인 전송
오류 가 발생할 수 있으므로 상위 계층에서도 전송 오류 문제를 다룬다.
-전송 과정에서의 유형
1) 데이터가 오류 없이 도착하는 정상적인 경우
2) 데이터가 수신 호스트에 도착하지 못하는 데이터 분실 오류
3) 데이터의 내용이 변경되어 도착하는 데이터 변형 오류
-> 전송 오류를 해결하는 일반적인 방법 : 재전송(Retransmission)
2.3 흐름 제어(Flow Control)
: 송신자가 데이터를 너무 빨리 보내어 수신자가 미처 처리하지 못하는 문제를 해결하기 위한 목적으로 사용
-물리적인 오류가 없었는데도 데이터를 분실하는 경우 송수신 호스트 사이의 데이터 전송/처리 속도 차이 때문에 발생하기도 한다.
수신 호스트에 데이터가 도착하면 일단 내부 버퍼에 보관했다가 처리하는데 버퍼 공간을 확보하지 못하면 데이터를 논리적으로 분실하는 결과가 초래된다.
2.4 데이터 전달 방식
단방향(Simplex) - 한쪽 방향으로만 전송하는 것.
반이중(Half Duplex) - ex) 무전기
전이중(Full Duplex) - 양쪽 동시 통신 ex) 핸드폰
3. 서비스 프리미티브
-연결형 서비스 TCP
먼저 데이터 전달 경로를 설정하는 연결 설정 단계(연결 확인 보장)
성공하면 데이터 전송 완료.
전송이 완료되면 연결 해제 단계
-비연결형 서비스 UDP
무조건 데이터를 독립적으로 목적지 호스트로 전송(도착하는 순서가 보낸 순서와 일치하지 않을 수 있다)
-하위 계층이 상위 계층에 제공하는 서비스는 프리미티브(Primitive) 형태로 구현된다.
-> 클라이언트로부터 Request가 발생하면 서버에 Indication 형태로 전달되어 서버가 인지한다.
서버는 올바르게 수신하였음을 클라이언트에 통보하기 위해 Response를 응답으로 보내고 클라이언트에 Confirm
형태로 도착
-Request : 클라이언트에서 발생하며 서버가 프리미티브의 기능을 수행하도록 하위 프로토콜에 요청할 때 사용
-Indication : 클라이언트로부터 Request요청을 수신한 서버의 하위 프로토콜은 Indication을 사용해서 프리미티브 요청이 발생했음을 알린다. 연결 설정, 데이터 전송, 연결 해제에 대해 사용
-Response : 클라이언트로부터 프리미티브를 받은 서버에서는 Response를 이용해 클라이언트에 응답. 연결 허용이나 거부로 응답
-Confirm : 서버에서 보낸 응답은 Confirm 형태로 클라이언트에 회신된다.
02 OSI 참조 모델
1. OSI 7 계층 모델
1.1 용어정의
-n프로토콜 : 임의의 호스트에서 실행되는 계층 n모듈은 상대 호스트의 계층 n모듈과 논리적으로 통신하는데 이들이
사용하는 규칙.
프로토콜의 역할은 프로토콜에서 정의된 기능을 수행하면서 필요한 정보를 서로 교환하는 것이다. 그러기 위해서 설계 고려사항을 반영해야 한다.(흐름 제어..)
동료 프로세스(Peer Process) : 동일 계층에 위치한 통신 양단은 같은 프로토콜을 사용하여 통신
-한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 인터페이스가 정의되어 둘 사이의 접근 방법을 제한하고 상위 계층에서 하위 계층의 인터페이스를 통해 하위 계층의 서비스를 이용할 수 있다.
1.2 헤더 정보
-프로토콜 스택의 맨 위에 위치한 일반 사용자는 전송 데이터가 있으면 이를 응용 계층에 보내 전송을 요청한다.
7 계층은 데이터에 자신의 프로토콜에서 정의한 헤더 정보를 추가해 6 계층에 보내며 6 계층에서 사용하는 프로토콜의 헤더 정보를 추가해 하위 계층으로 보낸다. 이를 1 계층까지 반복.
-1 계층에서는 수신 호스트에 데이터를 실제로 전송하고 이를 수신한 호스트에서는 송신 절차와 반대 방향으로 헤더를 제거하는 과정이 반복된다. 나중에 최상위 수신자는 원래의 전송 데이터만 받게 된다.
1.3 중개 기능
:송신 호스트에서 수신 호스트로 데이터를 전달하려면 중개 역할을 수행하는 중개 노드를 거쳐야 한다.
중개 시스템은 데이터가 목적지까지 올바르게 전달되도록 경로 배정 기능을 하며 라우팅(Routing)이라 한다.
2. 계층별 기능
1 계층 - 전송 매체의 물리적 인터페이스에 관한 사항을 기술. 전송 매체에서는 개별 정보의 비트 교환 문제를 다룬다.
물리계층은 하드웨어 시스템으로 구현되고 2 이상은 소프트웨어적으로 구현
2 계층 - 1 계층을 통해 전송되는 데이터의 물리적 전송 오류를 해결함으로 상위의 네트워크 계층에 신뢰성 있는 패킷 전송을 보장해주어 전송 오류에 대한 부담을 없애준다.
프레임 헤더에 표시되는 송수신 호스트 정보에는 LAN 카드에 내장된 송수신 호스트의 MAC 주소가 기록된다.
3 계층 - 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지를 결정하는 라우팅 문제를 처리.
정적, 동적인 방식으로 구분하고 경로 선택의 기준이 되는 호스트 주소가 필요하다.
IP 프로토콜이 3 계층의 기능을 수행하고 인터넷에 연결된 호스트는 3 계층의 주소와 데이터 링크 계층의 주소를
모두 가진다.
4 계층 - 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단(End-to-End) 통신 기능을 제공.
4 계층 하위의 계층은 호스트와 호스트 사이의 데이터 전송 과정에서 발생하는 문제들만 처리하는 반면 4 계층은
컴퓨터 내부에서 논리적으로 구축되는 통신 당사자인 프로세스 사이의 통신 문제를 다룬다.
전송 오류율, 전송 속도 등과 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능도 제공
5 계층 - 4 계층과 유사한 기능이나 원격 파일 전송이나 원격 로그인 등과 같은 상위 개념을 제공한다는 점이 다르다.
6 계층 - 5 계층까지는 주로 데이터의 전송에 관한 내용을 다루지만 6 계층은 데이터의 의미(Semantic)와 표현 방법 (Syntax)을 처리한다. 즉, 통신 양 단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룬다.
데이터 암호화, 대용량 데이터 크기를 줄여주는 압축 수행
7 계층 - 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룬다. FTP, 텔넷, 가상 터미널..
03 TCP/IP 모델
- 인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP 프로토콜을 사용하는 네트워크이다. 따라서 인터넷에 연결하고자 하는 호스트는 반드시 IP 프로토콜을 지원해야 하며 4 계층은 TCP나 UDP를 사용한다.
1. 구현 환경
- 4 계층까지의 기능을 시스템 공간인 os 내부에 규현 한다. 인터넷 환경에서 사용하는 TCP/IP와 하위 계층의 기능을 담당하는 LAN 카드 드라이버 루틴은 OS에 속한다. TCP/IP를 이용하려면 상자 공간에서 네트워크 응용 기능을 지원하는 프로그램을 작성해야 한다.
1.1 시스템 공간[1,2,3,4 계층]
-TCP와 UDP는 OS 커널 내부에 구현되므로 일반 사용자가 이 기능을 직접 이용할 수 없고 소켓(socket) 인터페이스라는 4층의 프리미티브를 이용하며 소켓은 OS에서 시스템 콜 기능으로 구현되므로 사용자 프로그램에서 이를 호출하는 방식으로 사용한다.
1.2 사용자 공간[5,6,7 계층]
-4 계층에서 소켓 시스템 콜을 호출해 TCP와 UDP 기능을 사용하고 소켓을 사용할 때는 소켓마다 부여되는 고유 주소인 포트 번호를 관리해야 한다. ftp, 텔넷, 웹 브라우저.. 모두 TCP와 UDP를 사용해 연결한다.
2. 프로토콜
2.1 TCP/IP 계층 구조
-
2.2 ARP와 RARP(3 계층)
- 데이터를 전송하려면 목적지 호스트의 MAC 주소가 필요한데 송신 호스트는 자신의 IP주소와 MAC 주소는 얻기 쉽지만 수신자의 주소를 얻는데 필요한 과정이 있다.
상대방 호스트의 IP주소는 응용 프로그램의 사용자로부터 입력되고 ARP(Address Resolution Protocol)로 사용자로부터 입력된 상대방 호스트의 IP주소를 이용해 MAC 주소를 구한다. 반대 과정은 RARP
2.3 ICMP(3 계층)
-데이터 전송 프로토콜인 IP가 동작하는 과정에서는 전송 오류가 발생할 수 있다. 오류가 발생하면 반드시 송신자에게 회신해 복구 작업을 하게 해야 하는데 ICMP(Internet Control Message Protocol)가 담당한다.
-오류 메시지를 전송하기 위한 별도의 헤더 구조를 가지며 IP 패킷에 캡슐화되어 전송되지만 IP와 같은 계층으로 취급
- 요약
-ARP : 인터넷에서 통신하려면 자신의 IP주소와 MAC 주소, 원격 호스트의 IP주소와 MAC 주소가 필요
arp는 원격 호스트의 주소 변환 기능을 제공하는데 사용자가 입력한 IP주소를 이용해 MAC 주소를 제공하는
프로토콜이다. IP -> MAC
-RARP : arp반대 IP -> MAC
-ICMP : 사용자 데이터의 전송 과정에서 오류가 발생하면 오류 메시지가 생성되는데 ICMP가 이를 전송하는 기능을 담당
연습문제
1. 네트워크 주소 표현 방식에는 네트워크에 연결된 모든 호스트에 데이터를 전송할 수 있는 (브로드캐스트) 표기방식과 특정 사용자를 그룹으로 묶어서 지칭하는 (멀티캐스트) 방식이 있다.
2. 컴퓨터 네트워크의 전송 오류에는 데이터가 깨져서 도착하는 (변형) 오류와 데이터가 수신 호스트까지 도착하지 못하는 (분실) 오류가 있는데, 이와 같은 전송 오류 문제는 (재전송) 기능이 해결한다.
3. 일반적으로 송신 호스트가 데이터를 너무 빨리 전송하면 수신 호스트가 데이터를 잃어버리는 현상이 발생한다. 이 문제를 해결하려면 송신 호스트의 전송 속도를 조절하는 (흐름 제어) 기능이 필요하다.
4. 프로토콜 설계 시 데이터 전달 방식을 고려해야 하는데, 일대일 통신 환경에서 데이터를 한쪽 방향으로만 전송하는 것을 (단방향) 방식이라 하고, 양쪽에서 데이터를 동시에 전송하는 것을 (전이중) 방식이라 한다. 이외에도 데이터를 양방향으로 전송할 수는 있지만 특정 시점에는 한쪽 방향으로만 전송하는 (반이중) 방식도 있다.
5. 연결형 서비스를 이용하는 절차는 크게 3단계이다. 데이터 전달 경로를 설정하는 (연결 설정) 단계가 필요하고 이 단계가 성공해야 (데이터 선정) 단계가 가능하다. 데이터를 모두 전송한 후에는 연결을 끊는 (연속 해제) 단계가 필요하다.
6. OSI 7 계층 모델에서 임의의 호스트에서 실행되는 계층 n 모듈은 상대 호스트의 계층 n 모듈과 논리적으로 통신하는데
이들이 사용하는 규칙을 계층 n (프로토콜)이라 한다.
7. 동일 계층에 위치하는 통신 양단을 서로 (동료 프로세스) 라 한다. 또한 한 호스트에서 상하로 이웃하는 계층에 위치한 모듈 사이에는 (인터페이스)가 정의되어 둘 사이의 접근 방법을 제한하고 있다. 상위 계층에서는 하위 계층의 인터페이스를 사용하여 하위 계층의 (서비스)를 이용할 수 있다.
8. 송신 호스트에서 수신 호스트로 데이터가 전달되려면 여러 개의 중개 시스템을 거쳐야 한다. 중개 시스템은 데이터가 목적지까지 올바르게 전달되도록 적절한 경로 배정 기능을 수행한다. 따라서 중간에 위치한 중개 시스템들은 경로 뱅 정 기능을 수행하는 네트워크 계층 프로토콜이 동작하고, 이를 (라우팅) 기능이라 한다.
9. 데이터 링크 계층을 이용해 전송되는 데이터 단위를 (프레임)이라 부르고, 네트워크 계층에서는 (패킷)이라 부른다.
10. 인터넷은 데이터 중개 기능을 담당하는 네트워크 계층의 역할을 (IP) 프로토콜이 담당하는 네트워크이다. 전송 계층은 연결형의 (TCP), 비연결형의 (UDP)를 주로 사용한다.
11. 네트워크 계층의 역할을 담당하는 (IP)는 사용자 데이터를 전송하는 프로토콜이다. 이때 IP 프로토콜의 동작 과정에서 전송 오류가 발생하는 경우를 대비해 오류 정보를 전송하는 목적으로 (ICMP)를 함께 사용한다.
12. 사용자가 입력한 IP 주소를 이용해 MAC 주소를 구하는 기능은 (ARP)가 담당하며, 반대로 MAC 주소를 IP 주소로 변환하는 기능은 (RARP)가 수행한다.
13. 모듈화 된 계층 구조에 대한 설명으로 올바른 것을 모두 고르시오. 1,2,4
3-> 전송 매체 양단에 있는 호스트가 수행하는 프로토콜은 좌우 대칭 구조이다.
5-> 모듈 인터페이스는 가능한 단순하게 구현해 모듈이 최대한 독립적으로 동작하도록 해야 한다.
14. 프로토콜 설계 시 고려할 사항으로 잘못된 것을 모두 고르시오. 4,5
4-> 수신 호스트의 버퍼 처리속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 논리적 데이터 분실 오류가 발생할 수 있다. 이 문제를 해결하려면 송신 호스트의 속도를 조정하는 흐름 제어 기능이 필요하다.
5-> 일대일 통신 환경에서 데이터를 한쪽 방향으로만 전송하는 것을 단방향 방식이라 한다.
15. 오류 제어 기능에 대한 설명으로 잘못된 것을 모두 고르시오. 4
4-> 네트워크에서 전송 오류가 발생했을 때 일반적인 해결 방법은 재전송하여 원래 데이터를 복구하는 것이다.
16. 서비스 프리미티브에 대한 설명으로 올바른 것을 모두 고르시오. 1, 2, 3, 4
5-> Request와 Indication은 클라이언트에서 서버로 전송되고 Response와 Confirm은 클라이언트에서 서버로 전송된다.
17. OSI 7 계층 모델에 대한 설명으로 잘못된 것을 고르시오. 2
2-> 데이터 하위 계층으로 이동 시 물리 계층을 제외한 모든 계층에서 헤더 정보가 추가된다. 수신 호스트에서는 상위 계층으로 이동하며 순차적으로 헤더 정보를 제거하고 해석한다.
18. OSI 7 계층 모델의 각 계층에 대한 설명으로 잘못된 것을 모두 고르시오. 3,5
3-> 네트워크의 트래픽이 지나치게 증가하는 문제를 조절하는 혼잡 제어 기능은 네트워크 계층에서 담당한다.
5-> 표현 계층은 통신 양단에서 서로 이해할 수 있는 표준 방식으로 데이터를 코딩하는 문제를 다룬다.
19. TCP/IP 모델의 구현 환경에 대한 설명으로 올바른 것을 모두 고르시오. 1, 2, 4
3-> 세션 계층부터 응용계층까지의 기능은 사용자 프로그램이 구현한다.
5-> TCP/IP를 이용하려면 사용자 공간에서 네트워크 응용 기능을 지원하는 프로그램을 작성해야 한다.
20. TCP/IP 프로토콜 스택에 대한 설명으로 잘못된 것을 모두 고르시오. 2
2-> ICMP와 ARP/RARP는 네트워크 계층에 소속되어 IP 프로토콜의 동작을 도와주는 기능을 한다.
21. 모듈화 된 계층 구조 프로토콜의 장점을 설명하시오.
- 시스템을 이해하기 쉽고 구현하기도 편리하다.
- 모듈의 독립성은 전체 시스템의 구조를 단순하게 만들어 준다.
- 동일 계층 사이의 프로토콜을 단순화할 수 있다.
- 전체 시스템을 재작성하지 않고 해당 계층의 모듈만 교체하면 된다.
22. 계층 구조의 네트워크 프로토콜을 설계할 때 고려할 사항을 나열하시오.
주소 표현, 오류제어, 흐름 제어, 데이터 전달 방식
23. 임의의 송신 호스트가 수신 호스트에 데이터를 전송했을 때 발생할 수 있는 오류에는 무엇이 있는가?
데이터가 깨지는 변형, 도착하지 못하는 분실 오류
24. 흐름 제어 기능을 설명하시오.
수신 호스트의 버퍼 처리속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 데이터를 분실할 수 있으므로 수신단이 전송 허가를 해줘야 데이터를 전송할 수 있도록 송신단을 제어하는 기능.
25. 서비스 프리미티브에서 Request, Indication, Response, Confirm의 기능을 설명하시오.
위쪽 서비스 프리미티브
26. OSI 7 계층 모델에서 각 계층의 역할을 설명하시오.
위쪽 OSI 7 계층 모델
27. TCP/ IP 모델의 구현 환경을 설명하시오.
위쪽 TCP/IP 모델
28. ARP, RARP의 필요성을 설명하시오.
IP주소는 응용프로그램의 사용자로부터 입력되지만 MAC 주소는 구할 수 없으므로, ARP를 이용해 IP 주소로부터 MAC 주소를 구한다. 또한 하드디스크가 없는 시스템에서 랜카드에 MAC 주소가 설정되어 있지만 IP주소는 저장이 안 되어 있어서 RARP를 이용하며 MAC 주소를 이용하여 IP주소를 알아내야 한다.
29. ICMP의 역할에 대해 설명하시오.
IP가 동작하는 과정에서 동작 오류가 발생할 수 있으므로 오류가 발생했을 때 송신자에 오류 메시지를 회신하는 기능.
'전공 공부 > 쉽게 배우는 데이터 통신과 컴퓨터 네트워크' 카테고리의 다른 글
ch05 MAC 계층 / 연습문제 5장 (0) | 2021.08.21 |
---|---|
ch04 데이터 전송의 기초 / 연습문제 4장 (0) | 2021.08.20 |
ch03 네트워크 기술 / 연습문제 3장 (0) | 2021.08.18 |
ch01 네트워크의 기초 용어와 기능 / 연습문제 (0) | 2021.08.16 |
쉽게 배우는 데이터 통신과 컴퓨터 네트워크 (0) | 2021.08.16 |