네트워크 모델 프로토콜 계층화, TCP/IP Protocol Suite , OSI 모델
프로토콜 계층화(Layering)
- 통신이 단순할 때는 하나의 간단한 프로토콜만 필요하지만, 통신이 복잡할 때는 각 계층에 프로토콜, 즉 프로토콜 레이어링이 필요합니다
- 추상화 :
각각의 layer는 서로 layer에 대해서 몰라도 됩니다.
예시 그림
프로토콜 계층화의 장점
- 복잡한 작업을 여러 개의 더 작고 간단한 작업으로 나눌 수 있다.
- 모듈화 : 동일한 입력이 주어졌을 때 두 기계가 동일한 출력을 제공하는 경우,
서로를 대체할 수 있습니다.
- 서비스와 구현의 분리
- Intermediate systems, but not all layers
- 이건 중간에 새로운 층계를 추가하거나 바뀌면 특정 layer가 필요하지 않을 수 있음을 말하는 것이다.
프로토콜 계층화의 단점
Cross-layer optimization
을 해야하고 단일 layer보다 더 어려워진다.
- 필요하지 않게, 성능이 떨어질 수 있다.
프로토콜 계층화의 두 가지 원칙.
양방향 통신
을 원한다면 각 계층이 각 방향에서하나씩 두 가지 반대되는 작업
을 수행할 수 있도록 만들어야 합니다. (예: 암호화/복호화
)
- 두 사이트의 각 계층 아래에 있는 두 개체가 동일해야 한다
TCP/IP Protocol Suite
- TCP/IP 프로토콜 제품군의 계층
역사
- 인터넷은 원래 미군의 국방기술이었다.
- 이 TCP/IP가 Unix OS에 들어가게 됩니다. 그렇게 인터넷이 보급이 되게 된 것이다.
- 이후 등장한 게 www가 등장하고 상용화가 됩니다.
계층 이야기
- 1계층 은 하드웨어입니다. → wifi의 전기신호를 어떻게 발생시키는 지 등을 결정
- 주로 회로가 된다.
- 과거에는 주로 칩으로 구현하였으나 최근에는 소프트웨어 기술로 구현하기도 한다.
- 그러한 기술을
SDR기술
이라고 한다.
- 2계층은 신호 중첩 스캐줄링을 담당
- AP가 있으면 A라는 사용자 B라는 사용자 둘이 있을 때 동시에 접속을 시도할 때 전기 신호가 중첩이 될 수 있는데, Time 스케줄링을 잘 해줘야하고, 그걸 담당하는게 2계층입니다.
- (인베디드 소프트웨어로 주로 구현이 된다.→
Device driver
보통 c++로 많이 구현한다.)
- wifi는 1계층과 2계층만을 사용하는 기술인 것을 알 수가 있습니다.
- LTE기술도 1,2계층이라고 봅니다.
- 3계층은 번역해주는 역할 + 라우팅
- 예시 : wifi(2계층)를 통해서 들어온 값을 3계층에 저장 후 다시 2계층인 이더넷으로 보내는 과정.
- AP와 이더넷(둘 다 2계층)을 연결시켜주기 위해서는
- wifi기술로 패킷을 수신한 이후에 수신 된 패킷을 메모리에 저장을 하고,
- 그리고 저장 된 메모리를 이더넷으로 보내도록 해석 후
- 이더넷으로 보내줍니다.
- 사실 layer3은 이전 계층이 이더넷인지, 와이파인지 별로 신경쓰지 않아도 메모리만 할당해주면 알아서 그곳으로 데이터가 들어오게 됩니다.
- 저장해두기만 하면 알아서 이더넷이 가져가게 됩니다.
- 만약 실제로 네트워크가 연결 될 때 매우 가까운 지역에만 서로 연결이 필요하면 3계층은 필요가 없을 수 있습니다.
- 전국망 에서는 layer3까지만 있는 매우 많은 라우터가 존재합니다. 그렇기에 라우팅 선택 알고리즘이 layer3에 들어가 있습니다.
- 여기서 길을 찾는 주소를 IP주소라고 부릅니다.
- 4계층 패킷 소실 담당
- 패킷은 소실 가능. (라우터가 꺼지는 등) → 이걸 보안 해주기 위해서 있는게 layer4입니다.
- TCP를 통해서 보안되는 것 입니다.
- 만약 잘 받았으면 Ack 메세지를 보내는데 그게 안 오면 다시 같은 패킷을 보냅니다.
- TCP위에 올라가는게
Application layer
이라고 보면 됩니다.
서비스는 항상 위로 해준다고 보면 됩니다.
실제로 서비스에서 데이터를 보내는 예시
- 만약 어플리케이션에서 메세지를 보내면 그 메세지를
sdu(service data unit)
라고 부르는데, 그걸 TCP에서 앞쪽에 header를 붙혀줍니다. (캡슐화)
- 이후 IP프로토콜로 이동시킵니다. 이걸 IP입장에서는
pdu(protocol data unit)
라고 부릅니다.
- 즉
상위 계층와 주고받는 정보를 sdu
라고 부르고하위 계층으로 보내는 데이터를 pdu
라고 부릅니다.Layer4 pdu == Layer3 sdu
Data link와 Physical
을 합쳐서Network Interface
라고 부릅니다.
- 과거에는 Main Board에 LAN 포트가 없어서 PCI 슬롯에 카드를 꽂아야 했는데 그 카드 이름이
NIC
였습니다. ⇒ 요즘은 온보드 형태로 들어가있다.
Layered Architecture
인터넷을 통한 커뮤니케이션
- 링크는 하나의 라우터로 연결됩니다.
- 다른 기술을 사용하는 망끼리 연결 시키는 기술을 라우터를 통해서 구현합니다.
(Wifi, ethernet, 5G
등등으로 서로 다른 프로토콜로 변경하는 것이라우터의 큰 역할
중 하나이다.)
- 링크의
링크 레이어 스위치
- Only two layers
- Using only one set of protocols
- 아래 그림에서 LINK1, LINK2 는 AP라고 부르는데 이 친구들은 3계층이 없습니다.
- 아래 그림에서
Router(3계층)
가 있는데 이는Gateway
라고도 부르며 이는 3계층까지 구현되어있습니다.
- 보통 라우터는 두개의
Access Network
를 연결 시켜주는 것이므로, 그렇기에 두개의 네트워크 인터페이스를 다 가지고 있어야만 합니다. (2계층)
- 3계층에서 길을 찾아주는 역할까지 해준다고 볼 수 있습니다.
TCP/IP 프로토콜 제품군의 계층
- 레이어 간의 논리적 연결 → 다른 layer와는 독립되게 생각할 수 있다.
- 따라서 AP는 스위치가 맞습니다.
- 보통 유무선 공유기를 최소 Layer3까지 올라간 녀석들을 Router라고 부릅니다.(실제로는 layer5까지 올라가있긴 하다.)
End-to-end
logical connection (domain: internet)애플리케이션, 전송 및 네트워크 계층
의 의무
- Network Layer가 왜 End to End냐? 라우터가 목적지인 것 아니냐?
아니다. 라우터의 목적지를 중간 경유지로 적어주는게 아니라 최종 목적지만 적어주기 때문에 Logical connection 상 End to End Connection인 것 입니다.
Hop-to-hop
logical connection (domain: link)데이터 링크 및 물리적 계층
- 홉: 호스트 또는 라우터
- TCP/IP 프로토콜 제품군의 객체
물리적 계층
끼리 연결될 때는Bit
를 통해서 정보를 주고 받는다.
Data link계층
에는Frame
으로 정보를 주고 받습니다.
각 layer 별 설명
1. Physical layer or PHY layer
- 링크를 통해 프레임에 개별 비트 전달하기 (가장 중요한 역활)
- 논리적인 커뮤니케이션이 있습니다.
- 숨겨진 계층: 물리 계층 아래의 전송 미디어
- 전송 매체는 전기적 또는 광학적 신호를 전달합니다.
- 두 장치에서 두 물리적 계층 사이의 논리 단위는 비트입니다
- 비트를 신호로 변환하는 여러 프로토콜
- 사실 이건
LTE, 이더넷, Wifi, 5G
다 들어오는 0과 1이 다를 것이다.
- 사실 이건
2. Data link layer
datagram
을 가져와서link
를 통해서 이동한다.- 라우터 : 최고의 링크 선택
medium access control
: 누구한테 데이터를 보낼 지 결정하는 알고리즘.
- 인터넷은 라우터로 연결된 여려 개의 링크로 구성된다.
- 예 : 유선 LAN(이더넷), 무선 LAN, 유선 WAN, 무선 WAN(LTE, 5G NR)
- 데이터 링크 계층도 프로토콜 별로 다 다르게 정의 되어있다고 보면 된다.
datagram
을 가져와프레임(frame)
이라는패킷(packet)
으로캡슐화(encapsulates)
한다.
- 일부 링크 계층 프로토콜은 다음을 제공합니다.
- 와이파이 같이 무선 프로토콜은 패킷이 쉽게 깨져서 재전송 되는 것 까지 보통 구현이 되어있습니다.
- 그러나 이더넷 같은 유선 네트워크는 패킷이 소실되는 경우가 거의 없기 때문에 재전송 자체가 없습니다.
- 따라서 프로토콜 마다 다르다!
- 완벽한
오류 감지
및 수정 또는 오류 수정만 하는 경우도 있다.
오류 감지
예시 →비트 갯수 감지
, 수정까지 가능하긴 합니다.
3. Network layer
- 호스트 간 통신 및 가능한 경로를 통한 패킷 라우팅
(라우팅 알고리즘 적용되는 층)
- 네트워크에서의 통신은 호스트 간 통신입니다
- 각 패킷에 가장 적합한 경로 선택
- 인터넷의 네트워크 계층입니다:
인터넷 프로토콜(IP)
- 연결 없는 프로토콜
- 흐름 제어, 오류 제어, 혼잡 제어 서비스 없음
Unicast
(일대일),multicast
(일대다) 모두 다 지원합니다.
- IP의 전송 및 라우팅 작업을 지원하는 보조 프로토콜 (여기 프로토콜 딸딸 외우지 마세요~ 있다는 것 정도만 알고 갑시다.)
- 인터넷 제어 메시지 프로토콜(
ICMP
) → Ping 명령을 보내거나 control 하는데 사용되는 프로토콜이다.
IGMP
(인터넷 그룹 관리 프로토콜) - 멀티캐스트 관리 프로토콜
DHCP
(동적 호스트 구성 프로토콜) → 유동 IP를 사용하는 겁니다.- (내가 연결을 맺을 때마다 임시로 서버가 IP를 할당 해주는 방식입니다.)
- 주소 확인 프로토콜(
ARP
) → IP주소가 항상 바뀌긴 하지만 하나의 고유한 IP가 있어야하긴 하다.그러면 패킷은 IP주소로 보내기 때문에 Mac주소로 translation을 해줘야 하는데, 그것을 우리는
ARP 프로토콜
이라고 부릅니다.
- 우리가 IP 통신을 할 때는 IP주소가 필요한 것이지만, 사실 Layer2 즉
이더넷이나 wifi
를 사용하면 IP주소가 아니라layer2
의 주소가 필요하다. 보통layer2는 유니크한 주소
를 사용합니다.
- 인터넷 제어 메시지 프로토콜(
4. Transport layer
애플리케이션 계층에 서비스 제공
애플리케이션 계층에서 메시지를 가져와 전송 계층 packet (called a segment or a user data gram) 으로 캡슐화하여 전송합니다.
- 전송 제어 프로토콜(Transmission Control Protocol)(
TCP
)- 연결 지향 프로토콜
- 바이트 스트림 전송을 위해 두 TCP 사이에 논리적 파이프 만들기
- 흐름 제어: 소스 호스트의 송신 데이터 속도와 대상 호스트의 수신 데이터 속도를 일치시켜 대상 호스트에 과부하가 걸리지 않도록 합니다.
- 오류 제어: 세그먼트가 오류 없이 목적지에 도착하도록 보장하고 손상된 세그먼트를 다시 전송합니다.
- 혼잡 제어: 네트워크 혼잡으로 인한 세그먼트 손실 감소
- 사용자 데이터그램 프로토콜(
UDP
) → 괜히 재전송을 할 필요가 없고 시간이 더 중요한 경우에 사용하는 게 UDP 프로토콜입니다.- 비연결 프로토콜, 적은 오버헤드(예: 단문 메시지)
- 멀티미디어용 스트림 제어 전송 프로토콜(
SCTP
)
5. Application layer
End-to-End
logical connection
- 프로세스 간 커뮤니케이션
HTTP
(하이퍼텍스트 전송 프로토콜): 월드와이드웹(WWW)에 액세스하기 위한 수단입니다.
SMTP
(Simple Mail Transfer Protocol): 이메일에 사용되는 기본 프로토콜입니다.
- 파일 전송 프로토콜(
FTP
): 한 호스트에서 다른 호스트로 파일 전송
- 터미널 네트워크(
TELNET
), 보안 셸(SSH
): 원격으로 사이트에 액세스하는 데 사용됩니다.
SNMP
(단순 네트워크 관리 프로토콜): 관리자가 글로벌 및 로컬 수준에서 인터넷을 관리하는 데 사용 합니다.
DNS
(도메인 이름 시스템): 다른 프로토콜에서 컴퓨터의 네트워크 계층 주소를 찾는 데 사용됩니다.
Encapsulation and Decapsulation
그림을 보면 송신측에서 헤더가 하나씩 늘어나는 걸 볼 수가 있는데 이를 encapsulation
이라고 부르고, 수신측에서 헤더를 하나씩 줄여가는데 이를 decapsulation
이라고 부른다.
- 인터넷 프로토콜 계층화에서 중요한 개념 중 하나
- 소스 호스트에서의 캡슐화
- 대상 호스트에서의 캡슐화 해제
- 라우터에서의 캡슐화 및 캡슐 해제
계층 별 데이터 이름
- 애플리케이션 계층(Application layer):
message
- 일반적으로 헤더나 트레일러를 포함하지 않습니다
- 전송 계층(Transport layer):
segment
(TCP),user datagram
(UDP)- 헤더: 흐름, 오류 제어, 혼잡 제어를 위한 소스 및 대상 프로그램의 식별자
- 네트워크 계층(Network layer):
datagram
- 헤더: 소스 및 대상 주소, 오류 확인 및 조각화를 위한 정보
- 데이터 링크 계층(Data link layer):
frame
- 호스트 또는
next hop
의 링크 계층 주소
- 호스트 또는
Addressing
- 두 당사자가 관련된 모든
커뮤니케이션
에는 두 개의 주소가 필요합니다Source address
anddestination address
.
- 보통 4개만 가지고 있다 왜냐하면
physical layer
은address
가 필요없기 때문이다.
- 물리 계층의 데이터 교환 단위는 비트이므로 주소를 가질 수 없습니다.
data link layer address
같은 경우 유니크한48비트 Mac Address
를 가지게 됩니다.
Network Layer
같은 경우 →Logical address 로 IP
주소를 가집니다.
Transport Layer
같은 경우Port Number
를 가집니다.Application layer
도 결국TCP
가 서비스를 해줘야 하기 때문에 주소가 필요한데 각어플리케이션에 미리 매핑에 놓은 주소
를port번호
라고 볼 수 있다.
- 어플리케이션 같은 경우 자체적인 변수명이 있습니다.
Multiplexing and Demultiplexing
TCP/IP
프로토콜 제품군(TCP/IP protocol suite
)은 일부 계층에서 여러 프로토콜을 사용합니다
멀티플렉싱
은 한 계층의 프로토콜이 한 번에 하나씩 여러 상위 계층 프로토콜의 패킷을 캡슐화 할 수 있음
을 의미
즉 이게 무슨말이냐 예를 들어 우리가 카카오톡을 하면서 영화를 보는 등 여러가지 일을 한번에 하는 경우 패킷을 하나로 묶는 것을 의미합니다.
Demultiplexing
은 프로토콜이 패킷을 캡슐화하여 한 번에 하나씩 여러 상위 계층 프로토콜에 전달할 수 있다.
다음 그림은 3개의 상위 계층에서 멀티플렉싱 및 디멀티플렉싱의 개념을 보여줍니다
OSI Model
- 국제 표준화 기구(ISO) : 국제 표준에 대한 전 세계적 합의를 전담하는 다국적 기구 → 사실 TCP/IP로 만든 프로토콜을 몰아내고 7계층으로 하려는 시도였으나 결국 몰아내지 못하고 TCP/IP 만 남았다.
개방형 시스템 상호 연결
(Open systems interconnection (OSI) model):네트워크 통신의 모든 측면을 포괄
하는 ISO 표준
개방형 시스템
: 서로 다른 두 시스템이기본 아키텍처에 관계없이 통신할 수 있도록 하는 프로토콜 집합
입니다.
OSI versus TCP/IP
Two layers: session and presentation
애플리케이션 계층은 일반적으로 OSI 모델에서 세 가지 계층의 조합으로 간주됩니다.
OSI Model’s Success 실패
- OSI 모델은 TCP/IP 프로토콜 제품군 이후에 등장했습니다
- 대부분의 전문가들은 처음에 TCP/IP 프로토콜이 OSI 모델로 완전히 대체될 것이라고 생각 하지만 아님
- OSI는 TCP/IP가 완전히 자리를 잡았을 때 완성
- OSI 모델의 일부 계층은 완전히 정의되지 않았습니다.
- 충분히 높은 수준의 성능이 아님
Uploaded by N2T
'CSE > 데이터 통신' 카테고리의 다른 글
[데이터 통신 4-1강] Baseband transmission & Transmission impairment (0) | 2023.10.27 |
---|---|
[데이터 통신 3강] Introduction of Physical Layer (1) | 2023.10.27 |
[데이터 통신 2-3강] 2강 과제 (0) | 2023.10.27 |
[데이터 통신 2-1강]Network Structure, topology 네트워크 유형과 Switching (1) | 2023.10.27 |
[데이터 통신 1강] 데이터 통신의 기본 개념 (0) | 2023.10.27 |