강의자료 출처: 한양대 김동우 교수님 컴퓨터네트워크 수업
통신 프로토콜 계층구조
- 물리계층 (Physical Layer)
최하위 계층에 속하며 010101인 전기적인 신호를 전송하는 역할을 한다.
기계어를 전기적 신호로 바꿔주는 것.
PDU: Bit - 링크계층 (Link Layer)
네트워크 기기들 (컴퓨터겠지) 사이의 데이터 전송을 한다.
이런 것에는 이더넷, LAN, WIFI 같은 것들이 있다.
PDU: Frame - 네트워크계층 (Network Layer)
데이터가 가는 경로를 설정해주는 역할을 한다. 당연히 예시로는 IP가 있겠고 해당 주소로 가는 최적의 경로로 전송한다.
PDU: 패킷 - 전송계층 (Transport Layer)
이 과정에서는 목적지까지 보내는 데이터들을 제어하고 에러를 관리한다.
보낸 데이터가 유효한지, 실패했는지, 순서가 맞는지등 신뢰성들을 관리한다.
TCP와 UDP 같은것들이 이곳에 해당한다.
PDU: 세그먼트 - 응용계층 (Application Layer)
실제 우리가 사용하는 앱들과 연결해주는 프로토콜등이다.
메일이면 SMTP, 파일이면 FTP, 웹이면 HTTP이다.
Error Detection and Correction
에러가 나면, 두가지 대응방식
- correction 확인 및 수정
- detection 에러가 났는지 확인만
통신은 모든것이 약속되어 있어야 함
error control 하는게 데이터링크 계층
hop by hop 프로토콜
- 홉바이홉 통신이란 IP 주소를 통해 통신하는 과정을 말한다.
- 홉(hop)이란 사전적 의미로는 '한 발로 깡충깡충 뛰다', '휙휙 바꾸다' 등의 뜻을 가지는데, 이는 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한 것이다.
end to end 프로토콜
⭐⭐⭐
연결 지향, 비연결 지향 프로토콜
연결 지향 프로토콜
통신 연결이 유지되는 것을 지향하는 프로토콜
연결을 계속 유지하기 위한 비용이 들기 때문에 더 비싸다.
이미 연결이 되어있기 때문에 어떤 사람이 데이터를 보냈는지 연결을 이용하여 알 수 있다.
비연결 프로토콜
연결을 유지하지 않는 프로토콜
연결을 유지하는 비용이 들지 않아 더 싸다.
매번 새롭게 연결이 성립되기 때문에 필요한 경우 매 연결 시 자신이 누구인지 알려줘야 한다.
이 아키텍처에서, 두 철학자(A와 B)가 다른 위치에 있고 그들은 다른 언어를 쓰고 메시지를 전송하려 한다. 따라서 성공적으로 메시지를 전송하기 위해서는 특정한 단계들이 둘에게 필요하다.
철학자 A는 비서에게 메시지를 전달하고 비서는 두 나라의 비서가 모두 이해할 수 있는 공통 언어로 변환한다.
그런 다음 변환된 메시지는 Fax를 통해 B 위치로 전송될 것이다. 그리고 B 위치의 비서는 메시지를 이해하고 철학자가 이해하는 언어로 철학자에게 전달할 것이다.
이러한 방식으로 통신이 이 아키텍처에서 발생한다. OSI 모델에서도 마찬가지이다. 각 계층에는 메시지의 성공적인 전송을 위해 따라야 할 다양한 프로토콜이 명시되어 있다.
Segmentation vs Fragmentation
프로토콜이란 컴퓨터나 네트워크 장비가 서로 통신하기 위해 지켜야 할 규칙이나 표준입니다. 이러한 프로토콜은 데이터의 전송 방식, 형식, 속도 등을 정의하며, 통신이 원활하게 이루어질 수 있도록 돕습니다. 여기서는 특정 상황에서의 프로토콜 역할, Fragmentation, Layer 2의 기능, CRC, 그리고 오버헤드 비율에 대하여 설명하겠습니다.
프로토콜의 역할
- 통신 규약 제공: 서로 다른 시스템이나 장비 간의 데이터 교환을 가능하게 하는 공통 언어 역할을 합니다.
- 데이터 형식화: 데이터가 어떻게 포장되고, 어떤 형태로 전송될지 결정합니다.
- 에러 관리: 데이터 전송 과정에서 발생할 수 있는 오류를 감지하고 수정하는 방법을 제공합니다.
- 흐름 제어 및 혼잡 제어: 데이터의 흐름을 조절하여 네트워크의 혼잡을 방지하고, 데이터 손실을 최소화합니다.
Fragmentation
데이터가 네트워크를 통해 전송될 때, 특정 크기 이상이면 데이터를 여러 개의 작은 패킷으로 나누는 과정을 말합니다. 이를 Fragmentation이라 하며, 각 네트워크 레이어는 자신의 MTU(Maximum Transmission Unit)을 가지고 있어서, 이보다 큰 메시지는 나누어 전송됩니다.
- 크다의 기준: 예를 들어, 어떤 프로토콜에서는 50byte를 최대 크기로 정할 수 있습니다. 이 경우, 50byte를 초과하는 메시지는 여러 개의 작은 메시지로 나누어집니다.
Layer 2의 기능
Layer 2, 즉 데이터 링크 계층의 주요 기능은 물리적 계층을 통해 신뢰할 수 있는 데이터 전송을 보장하는 것입니다. 이를 위해 다음과 같은 역할을 합니다.
- 프레이밍: 데이터를 프레임으로 포장하여 물리 계층으로 전송합니다.
- 주소 지정: 물리적 주소(MAC 주소)를 사용하여 데이터의 목적지를 지정합니다.
- 흐름 제어: 송수신 사이의 데이터 흐름을 조절합니다.
- 에러 검출: 전송 중에 발생한 에러를 감지합니다.
Error Detection과 CRC
- Error Detection: 데이터가 손상되거나 오류가 발생했는지 확인하는 과정입니다.
- CRC (Cyclic Redundancy Check): 에러 검출을 위한 방법 중 하나로, 데이터를 특정 다항식으로 나누어 나머지를 사용하여 오류의 유무를 판단합니다.
오버헤드 비율
오버헤드 비율은 오버헤드 비트수를 전체 비트수로 나눈 후 100을 곱하여 백분율로 표현한 것입니다. 오버헤드란 실제 데이터 외에 전송을 위해 필요한 추가적인 데이터(예: 헤더, 에러 검사 정보)를 의미합니다.
[ \text{오버헤드 비율} = \left( \frac{\text{오버헤드 비트수}}{\text{전체 비트수}} \right) \times 100 ]
이 공식을 통해 계산된 오버헤드 비율은 데이터 전송 효율성을 평가하는 데 중요한 지표입니다. 오버헤드가 많으면 많을수록 순수 데이터 전송에 사용되는 비트는 줄어들기 때문에, 전체적인 통신 효율성이 낮아집니다.
오버헤드 관리의 중요성
오버헤드를 적절히 관리하는 것은 네트워크 통신에서 매우 중요합니다. 오버헤드가 과도하게 많으면 네트워크의 대역폭이 낭비되고, 전송 속도가 느려질 수 있습니다. 따라서, 효율적인 프로토콜 설계는 오버헤드를 최소화하면서도 필요한 제어 정보와 에러 검출, 수정 기능을 제공해야 합니다.
CRC와 오버헤드
CRC (Cyclic Redundancy Check)는 오버헤드의 한 예입니다. CRC 값을 계산하여 데이터 패킷에 추가함으로써, 수신 측에서는 이 값을 통해 데이터의 정확성을 검증할 수 있습니다. 이처럼 오버헤드는 데이터의 안정성과 정확성을 보장하는 데 필수적인 역할을 하지만, 동시에 전체적인 데이터 전송량을 증가시켜 효율성을 저하시킬 수 있습니다.
결론
네트워크 프로토콜과 데이터 링크 계층의 기능, 그리고 오버헤드 관리는 네트워크 통신의 효율성과 안정성을 결정짓는 중요한 요소입니다. 이를 통해 데이터가 정확하고 효율적으로 전송될 수 있도록 하며, 네트워크 자원의 낭비를 최소화합니다. 따라서, 네트워크 설계와 관리에서 이러한 요소들을 적절히 고려하는 것이 중요합니다.
주어진 정보를 바탕으로 오버헤드를 계산해 보겠습니다.
전체 크기: 104바이트
최대 페이로드 크기: 10바이트
패킷 수: 10개
각 패킷의 최대 페이로드 크기가 10바이트이고, 패킷이 총 10개 있다면, 페이로드의 총합은 100입니다.
이제 전체 크기에서 페이로드의 총합을 빼면 오버헤드를 구할 수 있습니다.
104 - 100 = 4
따라서, 오버헤드의 총량은 4바이트입니다.
오버헤드 비율을 계산하기 위해 이전에 언급한 값들을 사용해 보겠습니다.
오버헤드 바이트수: 4바이트
전체 바이트수: 104바이트
오버헤드 비율을 계산하는 공식은 다음과 같습니다:
오버헤드 비율= 오버헤드 바이트수/전체 바이트수
이를 대입해보면:
오버헤드 비율= 4/104
이 결과를 백분율로 변환하기 위해서는 100을 곱합니다.
0.03846 * 100 =3.846%
따라서, 오버헤드 비율은 대략 3.846%입니다
프로토콜 메세지와 헤더
응용 계층의 데이터 단위는 메시지(Message)입니다. 응용 계층에서 HTTP로 통신하는 애플리케이션이 전송하는 데이터 단위를 HTTP 메시지라고 합니다. HTTP 메시지는 서비스를 제공하고 이용하기 위해 애플리케이션이 만든 데이터에 헤더를 붙여 캡슐화한 것입니다. HTTP 메시지는 웹 브라우저나 웹 서버 애플리케이션 같은 HTTP를 사용해 통신하는 애플리케이션이 만듭니다.
헤더에는 각 계층에 적용되는 프로토콜이 데이터를 처리하여 계층의 역할을 수행할 때 필요한 정보가 담깁니다. 데이터를 전송하는 역할을 하는 네트워크 인터페이스 계층, 인터넷 계층, 전송 계층의 헤더에는 수신지의 주소 같이 데이터 전송에 필요한 정보가 담겨있습니다. 다른 계층과 마찬가지로 HTTP 헤더에도 HTTP 프로토콜이 요청과 응답이라는 형식으로 데이터를 처리하기 위한 정보가 담깁니다.
비디오는 연속된 프레임의 합, 하나의 프레임이 깨져도 지장없다 = 주로 실시간 통신, 스트리밍 보이스톡도 마찬가지임 = 적절한 선에서 에러가 용인된다 = unreliable connection
word 파일에서 조금만 에러가 있어도 문서가 안열림 = reliable connection
6단계 - connect부터 release까지 일련의 과정 대역폭을 점유하고 있는데 release해줘야 다른 유저가 사용가능
Service Primitive
서비스 프리미티브(Service Primitive)
상/하위 계층끼리 데이터를 전송하기 위하여 주고받는 서비스를 말함
4가지의 종류가 있음
Request(요청) : 상위계층이 하위계층에게 데이터의 전송을 요구하거나 연결설정을 요청할 때 사용하는 서비스
Indication(지시) : 하위계층이 상위계층에게 데이터의 도착이나 연결설정의 요청이 있음을 알려주는 서비스
Response(응답) : 지시에 따른 데이터의 처리나 연결설정을 알리는 서비스로 상위계층이 하위계층에 알리는 서비스
Confirm(확인) : 처음의 요청에 응답이 왔음을 알리는 서비스로 하위계층이 상위계층에게 알리는 서비스
The Relationship of Services to Protocols
초록색 문제 답 service provided by layer k protocol
The OSI Reference Model 녹색 network
hop by hop은 각각 달라도 된다
5계층 이름 외우기
frame단위로 에러체킹
~PDU = ~프로토콜 데이터 유닛
비트 프레임 (레이어2) 패킷 (레이어3) 구분하자
presentation, session은 옛날에 컴터 안좋을때 쓰고 지금은 안씀
네모박스안에 있는 단어가 각 링크 레이어의 대표적인 프로토콜들을 의미
이메일 쓸 때는 SMTP를 써야 한다
SONET은 광통신
'전공 > 컴퓨터네트워크' 카테고리의 다른 글
물리계층 – 전송 매체, 패스로스 (0) | 2024.03.19 |
---|---|
컴퓨터네트워크 주차별 진도 (0) | 2024.03.18 |