TCP/IP
전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)를 의미
❓ OSI 대신 TCP/IP가 사용되는 이유
TCP/IP만의 특징이 있기 때문
- 오픈되어 있다 -> IETF에 누구나 참여가능
- 실제 작동되는지를 중시하여, 안전성과 실용성이 높음
프로토콜에 대한 문서로 구글에서 검색이 가능
- 수정 불가
- 갱신 시, 새로운 RFC 번호 부여
- STD라는 번호를 부여할 수 있음
TCP/IP 모델 계층
응용 계층
SMTP, FTP, Telnet 등을 서비스
전송 계층
프로세스간의 신뢰성 있는 데이터 전송을 담당
- TCP(Transmission Control Protocol) : 신뢰성이 있는 연결지향형 프로토콜. 오류처리 가능. 헤더의 오류코드에 대응할 수 있는 각종 정보 포함
- UDP(User Datagram Protocol) : 비신뢰성 비연결형 프로토콜. 흐름 제어 및 오류 검출 등의 기능이 없음 -> 간단하 구조로 패킷을 빠르게 전송해야 할 때 사용
네트워크 계층(인터넷 계층)
송수신 호스트 사이의 라우팅을 담당
주요 기능
- 라우팅 : 네트워크 구성 형테에 관한 정보를 관리하는 라우팅 테이블을 이용하여 호스트 사이의 패킷 전달 경로 선택
- 혼잡 제어 : 네트워크에 패킷 수가 과도하게 증가되는 현상을 예방하거나 제어
종류
- IP(Internet Protocol) : 사용자 데이터를 전송
- ARP(Address Resolution Protocol) : IP주소를 MAC주소로 변환
- RARP(Reverse ARP) : MAC 주소를 IP주소로 변환
ARP 동작원리
물리주소 요청을 위한 패킷 브로드캐스트 -> 모든 호스트와 라우터 ARP 요청 수신 -> IP주소와 MAC주소를 넣어 응답 패킷 유니캐스트로 전송
네트워크 접속 계층
하드웨어적 요소의 모든 것을 지원
프레임의 크기는 네트워크 토폴로지에 의해 결정
인터네트워킹
둘 이상의 서로 다른 네트워크를 연결하는 기능
브리지
라우팅 테이블
역방향 학습 알고리즘으로 작성
스패닝트리
네트워크의 논리적 연결 상태를 비순환 형태로 간주
Why❓ 패킷의 무한루프를 막기 위해
소스 라우팅 브리지
패킷 송신 시 헤더에 모든 경로를 기술
IP 인터네트워킹
인터넷에서 네트워크를 연결하는 방식
-
정적 라우팅
송수신 호스트 사이에 영구 불변의 고정 경로를 배정
장점 : 간단하지만 효율적인 라우팅
단점 : 트래픽 변화에 따른 동적 경로 배정이 불가능 -> 회피가 불가능
-
동적 라우팅
인터넷 연결 상태가 변하면 전달 경로 배정에 반영
단점 : 경로 결정 시, 라우터의 부담이 증가 (Why❓ 계속 정보를 수집하기 때문에)
QoS(Quality of Service)
얼마나 신뢰성 있게 데이터를 전송하는가
- 연결 설정 지연 : 연결 설정을 위한 request 와 confirm 도착 사이의 경과 시간
- 전송 지연 : 송신 호스트가 전송한 데이터가 수신 호스트에게 도착할 때까지 경과한 시간
IEEE 802 시리즈
LAN 환경에서 네트워크 자원을 효율적으로 사용하기 위해 계층을 구분
- MAC 계층 : LAN 종류에 따라 특성이 구분됨
이더넷
토큰 링
- LLC 계층 : WAN 환경의 데이터 링크 계층과 유사
Ethernet
프레임구조
Preamble | Start Delimiter | Destionation Adress | Source Address | Length | Data and Pad | Checksum |
---|
송신과 수신과의 클럭 동기화 | 프레임의 시작 | 목적지 주소 | 발신지 주소 | 데이터크기 | 캡슐화 된 데이터 | 오류 검출 정보 |
프레임
문자 프레임
프레임의 시작 끝에 특수 문자 사용
- 시작 : DLE / STX
- 끝 : DLE / ETX
문자 스터핑
문자 프레임의 전송 데이터 중 DLE 문자가 포함되면서 발생하는 혼란 예방 방법
- 송신 측 : 데이터에 DLE가 있으면 강제로 DLE 추가
- 수신 측 : 데이터에 DLE가 연속으로 두 번 있으면 DLE 문자 삭제
비트 프레임
프레임의 시작과 끝을 구분하기 위해 플래그 (01111110) 사용
비트 스터핑
전송하고자 하는 데이터 네용 중에 값이 1인 패턴이 연속해서 5번 발생하면 강제로 0을 추가해 전송
- 전송 데이터에 플래그 패턴이 포함되면 혼선이 발생하므로
- 송신 측 : 데이터에 1이 연속해서 5번 발생하면 강제로 0을 추가
- 수신 측 : 데이터에 1이 연속해서 5번 발생하면 이어진 0을 제거
오류 검출
순환 중복 검사(CRC, Cyclic Redundancy Check)
정확하게 오류를 검출하기 위해 다항식 코드를 사용 하는 방법
- 전송 데이터의 다항식의 최고차항의 계수만큼 0을 추가한다
- 다항 코드로 나눈다
계산 과정에서 뺄셈 연산 방법을 사용
모듈로 -2 방식
두 수가 같으면 0, 두 수가 다르면 1
- 최고차항의 계수만큼의 길이의 나머지가 체크섬
- 송신 측 : "전송 데이터 + 체크섬"을 수신 측에 전송
- 수신 측 : "전송 데이터 + 체크섬"을 생성 다항식으로 나누어 결과를 확인
나머지가 0이면 오류가 없음