Internet protocol suite (인터넷 프로토콜 스위트)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 프로토콜의 집합.
대표적으로 TCP/IP 4계층과 OSI 7계층 모델
TCP/IP 4계층 모델
- 네트워크에서 사용되는 통신 프로토콜의 집합
- 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성됨
- Application layer
- Transport layer
- Internet layer
- Link layer
- 특정 계층이 변경되어도 다른 계층이 영향을 받지 않도록 설계되었다.
- Transport layer에서 TCP를 UDP로 변경했다고 해서 인터넷 웹 브라우저를 다시 설치해야 하는 것이 아니듯
Application Layer
- 응용 프로그램이 사용되는 프로토콜 계층
- 서비스를 실질적으로 사람들에게 제공하는 계층
- ex)
- FTP (File Transfer Protocol)
- 장치와 장치 간의 파일을 전송하는데 사용되는 표준 통신 프로토콜
- HTTP (HyperText Transfer Protocol)
- World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는데 쓰는 프로토콜
- SSH (Secure SHell)
- 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- SMTP (Simple Mail Transfer Protocol)
- 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS (Domain Name Server)
- 도메인 이름과 IP 주소를 매핑해주는 서버
- IP 주소가 바뀌어도 사용자들에게 똑같은 도메인 주소로 서비스 가능.
- 네이버의 IP주소가 바뀌어도 사용자는 www.naver.com으로 접속 가능
- FTP (File Transfer Protocol)
Transport Layer
- 송신자와 수신자를 연결하는 통신 서비스를 제공
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
- application layer와 internet layer 사이의 데이터가 전달될 때 중계 역할
- ex)
- TCP(Transmission Control Protocol)
- 패킷 사이의 순서를 보장하고 에러없이 교환하며 수신 여부 확인
- 가상회선 패킷 교환 방식 사용
- 각 패킷에는 가상회선 식별자가 포함
- 모든 패킷을 전송하면 가상회선이 해제되고
- 패킷들은 전송된 순서대로 도착
- 한 곳에서 만들어진 패킷들은 하나의 회선을 사용. (같은 경로)
- TCP 연결 성립 과정
- 신뢰성을 확보하기 위해 3-way handshake 작업 진행
- SYN(Synchronization 연결 요청 플래그)
- 클라이언트가 서버에게 ISN(8000)을 담아 SYN 세그먼트를 보낸다.
- SYN + ACK
- 서버는 클라이언트가 보낸 SYN세그먼트를 수신하고 서버의 ISN(15000)과 승인번호로 클라이언트의 ISN+1(8001)을 담아 세그먼트를 보낸다.
- ACK(Acknowledgement. 응답 플래그)
- 클라이언트는 서버의 ISN+1(15001)한 값을 승인번호로 담아 ACK 세그먼트를 서버에 보낸다.
- 초기 네트워크 연결을 할 때 할당된 32비트 고유 시퀀스 번호
- TCP 연결 해제 과정. 4-way handshake
- FIN클라이언트는 FIN_WAIT_1 상태로 서버의 응답을 기다림
- 클라이언트가 연결을 닫기 위해 FIN 세그먼트를 보냄
- ACK서버는 CLOSE_WAIT 상태.
- 클라이언트가 ACK 세그먼트를 받으면 FIN_WAIT_2 상태.
- 서버는 클라이언트에게 ACK 세그먼트를 보냄
- FIN서버는 LAST_ACK 상태
- 서버는 ACK를 보내고 일정 시간 후에 클라이언트에게 FIN 세그먼트를 보냄
- ACK서버는 CLOSED 상태클라이언트와 서버의 모든 자원의 연결 해제
- 클라이언트는 어느 정도 시간을 대기한 후 CLOSED 상태
- 클라이언트가 FIN 세그먼트를 받으면 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보냄
- TIME_WAIT 상태의 필요성
- 지연 패킷이 발생할 경우를 대비하기 위해 (데이터 무결성을 위해)
- 두 장치가 연결이 닫혔는지 확인하기 위해
- 서버가 LAST_ACK에서 CLOSED가 될 시간을 주는 것
- UDP(User Datagram Protocol)
- 안정성을 보장하지 않음
- 전달 확인 및 순차 보장 기능이 없음
- 오버헤드가 작고 지연시간이 짧다.
- 단순히 데이터만 주는 데이터 그램 패킷 교환 방식 사용
- 패킷이 독립적으로 이동하며 최적의 경로를 선택
- 한 곳에서 만들어진 패킷이더라도 서로 다른 경로로 전송될 수 있으며 도착 순서가 다를 수 있다.
- TCP(Transmission Control Protocol)
Internet Layer
- 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
- 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달
- 상대방이 제대로 받았는지에 대해 보장하지 않음
- ex)
- IP
- ARP
- ICP
Link Layer
- 전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달
- 장치 간에 신호를 주고받는 ‘규칙’을 정하는 계층
- Physical layer와 Data link layer로 나누기도 함
- Physical layer
- 무선 LAN과 유선 LAN을 통해 0과 1로 이루어진 데이터를 보내는 계층
- 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따르며 전이중화 통신을 사용
- 전이중화 통신 full duplex
- 양쪽 장치가 동시에 송수신할 수 있는 방식
- 송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고속 이더넷은 이 방식을 기반으로 통신
- 양방향 통신이 가능하기 때문에 충돌 가능성이 없어 충돌을 감지하거나 방지하는 메커니즘은 필요없음
- 반 이중화 통신 half duplex
- 양쪽 장치는 서로 통신할 수 있지만 동시에는 통신할 수 없으며 한 번에 한 방향만 통신할 수 있는 방식
- 장치가 수신하기 시작하면 전송이 완료될 때 까지 기다려야 한다.
- 둘 이상의 장치가 동시에 전송하면 충돌이 발생하기 때문에 충돌 방지 시스템이 필요
- CSMA/CD
- Carrier Sense Multiple Access with Collision Detection
- 전이중화 통신 이전에 유선 LAN에 반이중화 통신 중 하나
- 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송하는 방식
- 한 경로를 기반으로 데이터를 보냄
- CSMA
- 반 이중화 통신 중 하나
- 장치에서 데이터를 보내기 전에 캐리어 감지 등으로 사전에 가능한 한 충돌을 방지하는 방식
- 데이터를 송신하기 전에 무선 매체를 살핌
- 캐리어 감지 : 회선이 비어있는지 확인
- IFS : 랜덤 값을 기반으로 정해진 시간만큼 기다리며, 만약 사용 중이라면 점차 그 간격을 늘려가며 기다림
- 이후에 데이터를 송신
- 유선 LAN을 이루는 케이블
- twisted pair cable
- 하나의 케이블 처럼 보이지만 실제로는 8개의 구리선을 두 개씩 꼬아서 묶은 케이블
- 광섬유 케이블
- 광섬유로 만든 케이블
- 레이저를 이용해 통신하기 때문에 구리선과 비교할 수 없을 만큼의 장거리 및 고속 통신이 가능
- 보통 100Gbps의 데이터를 전송
- 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작해 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진해 반대편 끝까지 가는 원리를 이용
- 빛의 굴절율이 높은 부분을 코어, 낮은 부분을 클래딩
- twisted pair cable
- 무선 LAN을 이루는 주파수
- Wireless Local Area Network
- 무선 신호 전달 방식을 이용하여 2대 이상의 장치를 연결하는 기술
- 비유도 매체인 공기에 주파수를 쏘아 무선 통신망을 구축
- 주파수 대역
- 2.4GHz
- 장애물에 강한 특성
- 전자레인지, 무선 등 전파 간섭이 일어나는 경우가 많음
- 5GHz
- 사용할 수 있는 채널 수도 많고 동시에 사용할 수 있기 때문에 상대적으로 깨끗한 전파 환경 구축 가능
- 보통 5GHz 사용
- 2.4GHz
- 와이파이
- 전자기기들이 무선 LAN 신호에 연결할 수 있게 하는 기술
- 무선 접속 장치(Access Point)가 있어야 함. = 공유기 필요
- 공유기를 통해 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿔주어 신호가 닿는 범위 내에서 무선 인터넷을 사용할 수 있게 됨
- BSS (Basic Service Set)
- 기본 서비스 집합
- 동일한 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조
- 근거리 무선 통신을 제공
- 하나의 AP만을 기반으로 구축이 되어 있어 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 네트워크에 접속하는 것은 불가능
- ESS (Extended Service Set)
- 하나 이상의 연결된 BSS 그룹
- 장거리 무선 통신을 제공
- BSS보다 더 많은 가용성과 이동성을 지원
- 사용자가 한 곳에서 다른 곳으로 자유롭게 이동하며 중단 없이 네트워크에 계속 연결 가능
- Data link layer
- 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층
- 이더넷 프레임
- Physical layer
-
-
-
- Preamble : 이더넷 프레임 시작
- SFD(Start Frame Delimiter) : 다음 바이트부터 MAC 주소 필드 시작
- DMAC, SMAC : 수신, 송신 MAC 주소
- EtherType : 데이터 계층 위의 계층인 IP 프로토콜 정의.
- Payload : 전달받은 데이터
- CRC : 에러확인 비트
- MAC 주소
- 컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 장치(LAN 카드)가 있는데 이를 구별하기 위한 식별번호로 6byte로 구성된다.
- MAC 주소
-
-
계층 간 데이터 송수신 과정
- Application layer에서 Link layer까지 클라이언트가 보내는 요청 값들이 캡슐화를 거쳐 전달되고 Linke Layer를 통해 해당 서버와 통신을 하고 해당 서버의 Linke Layer부터 Application Layer까지 비캡슐화 과정을 거쳐 데이터가 전송된다.
- 캡슐화 과정
-
- 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
- Application Layer의 데이터가 Transport Layer로 전달되면서 “세그먼트” 또는 “데이터그램”화되며 TCP(L4) 헤더가 붙는다.
- Internet Layer로 가면서 IP(L3) 헤더가 붙으며 “패킷”화가 된다.
- Link Layer로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 “프레임”화가 된다.
- 비캡슐화 과정
-
- 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
- 캡슐화된 데이터를 받으면 Linke Layer에서 “프레임”화된 데이터를 다시 “패킷”화, “세그먼트”나 “데이터그램”화를 거쳐 “메시지”화가 된다.
- 최종적으로 사용자에게 Application의 PDU인 메시지로 전달된다.
PDU
- Protocol Data Unit
- 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
- 제어 관련 정보들이 포함된 “헤더”, 데이터를 의미하는 “페이로드”로 구성되어 있으며 각 계층마다 부르는 명칭이 다르다.
- Application Layer : 메시지
- Transport Layer : 세그먼트 Segment(TCP), 데이터그램 Datagram(UDP)
- Internet Layer : 패킷 Packet
- Link Layer : 프레임 Frame(Data Link Layer), 비트 Bit(Physical Layer)
728x90
'Team' 카테고리의 다른 글
[CS스터디] DB-트랜잭션과 무결성, 데이터베이스 종류 (0) | 2023.01.05 |
---|---|
[CS 스터디] OS - 메모리 (0) | 2022.12.29 |
[스터디] 5월 알고리즘 스터디 (0) | 2022.05.27 |
[블록체인] (0) | 2021.05.30 |
[블록체인] 트러플1 (0) | 2021.05.10 |
댓글