학회_공부해요/네트워크

#02. TCP/IP

yenas0 2024. 4. 2. 02:14
반응형

OSI 7 계층

protocol 개요
통신망에서 통신을 원하는 양측 시스템에서 데이터를 주고받기 위해 미리 약속된 운영상의 통신 규약.
 
protocol 구성 요소

구문(Syntax)데이터 형식, 신호 레벨, 부호화
의미(Segmantics)개체의 조정, 에러 제어 정보
순서(Timing)순서 제어, 통신 속도 제어

 
 
 
 
 
 
데이터 전송 방식

비트 단위 전송특수 플래그를 포함시켜 데이터를 전송하는 방식
SDLC(Synchronous Data Link control) 프로토콜과 HDLC(High level Data link Control) 프로토콜이 존재
바이트 단위 전송 전송을 위한 제어 정보를 데이터 헤더에 포함시켜 데이터를 전송하는 것
DDCM(Digital Data Communication Message) 프로토콜이 존재
문자 단위 전송데이터의 시작과 끝에 특수문자를 포함시켜 전송하는 것
BSC(Binary Synchronous Communication) 프로토콜이존재 

 
 
 
 
OSI 7 계층 (Open System Interconnection) 개요
- ISO에서 제정한 표준안
- 모든 데이터 통신 기준을 계층으로 분할, 각 계층 간 필요한 프로토콜 규정
- 7 계층으로 분류해 서로 다른 네트워크 간의 통신이 가능하도록
 
OSI 7계층 목표
- 정보를 전달하는 Framework 제공하여 네트워크 형태에 차이가 발생해도 데이터 통신을 지원
- Framework: task를 처리하기 위한 기본적인 틀을 의미.
 
OSI 7계층 특징
- 개방형 시스템 간에 상호 접속을 위해서 표준화된 방법 제시
- OSI 7계층별로 정보 흐름을 최소화하여 각 계층의 독립성 향상
- 프로토콜의 표준화를 제시해 효율성 및 생산성을 향상 
 
+) 캡슐화
: 각 계층에서 계층에 대한 정보를 헤더에 추가해 메시지에 헤더를 붙이는 과정

Applicaton- 사용자들이 사용하는 프로그램이 존재
- 데이터 송신을 위해 메시지 생성
- 하위계층 몰라도 네트워크 사용 가능
- HTTP, FTP, SNMP, SMTP ...
Presentation- 애플리케이션에서 전송한 메시지에 대해 코드화
- 사전에 정해지 코드로 변환
- 메시지를 압축해 전송되는 데이터량 축소
- 암호화 수행 (sniffing 방지)
Session- 송수신자 간 통신을 위해 동기화 신호 주고받음
- 세션 연결, 가상 연결 제공
- 통신 방식 결정
Transport- 송신자와 수신자 간에 논리적 연결 수행
- end to end 연결 관리
- TCP, UDP (데이터 에러 확인)
- 종단 간 에러 발생 시 재전송으로 수정
Network- 수신자의 IP 주소를 읽어 라우터가 경로 결정
- 경로 결정은 라우팅 알고리즘 사용
- 경로 결정 이후 포워딩 수행
- IPv4주소, IPv5 주소 존재
- 에러 확인 위해 ICMP 프로토콜 사용
Data Link- 네트워크 계층에서 붙인 IP헤더에서 IP주소를 읽어 하드웨어 주소인 MAC 주소를 구함
- 에러 탐지 및 교정
- 네트워크 부하 방지를 위해 Flow Control 수행 
 Physical- bit로 데이터 전송
- 전솔 거리 멀 시에는 Repeater같은 장치 사용해 신호 증폭 필요

 
 
 
 
 
 
에러 제어 개요
- 수신 받은 데이터에 에러가 없는지 확인하는 것: FEC(Forward Error Correction)
- 수신자가 데이터를 수신받지 못하면 재전송: BEC(Backward Error Correction)

FEC수신 측에서 에러 처리
데이터 전송 과정에서 발생한 오류 검출
재전송 요구가 없어 역 채널 필요 없으며 연속적인 데이터 전송 가능
오류 검출 및 수정을 위한 잉여 비트들이 추가 전송되므로 전송 효율 감소
BEC송신 측에서 에러 처리

 
 
 
FEC

Parity Bit1의 개수가 짝수인지 홀수인지를 확인해 에러 여부 확인
CRC (Cyclic Redundancy Check)데이터 통신에서 전송 중에 오류가 발생했는지를 확인하기 위해 덧붙이는 코드
Hamming Code오류 발견 및 교정이 가능

 
BEC

Stop and Wait 송신자가 데이터를 전송하고 수신응답이 오면 다음 데이터를 전송
Go-Back-N수신자가 데이터를 수신 받지 못할 경우 마지막으로 수신 받은 데이터 이후의 모든 데이터를 재전송하는 방법
TCP 프로토콜에서 사용
Selective repeat수신자가 수신 받은 데이터 중에서 중간에빠져 있는 것만 재전송하는 방식으로 에러 처리 

 
 
 
 
 

TCP/IP 계층

TCP/IP 4계층

Application애플리켕션 계층은 사용자들이 사용하는 프로그램이 있는 계층
FTP, Telnet, SSH, HTTP, SMTP, SNTP ...
TransportTCP, UDP 프로토콜 有
InternetIP 주소를 읽어경로를 결정하는 라우팅 실행
논리적주소인 IP 주소를 부여하고 최단 경로 결정
ARP 프로토콜 지원( IP주소를 MAC주소로 변환)  
ICMP 프로토콜 지원(네트워크 에러 검사)
Network Access물리적 케이블 혹은 무선 통신과 연결하고 메시지 전송
전기적 신호로 변환해 메시지 전송

 
애플리케이션 계층 개요
- 애플리케이션 계층은 일반 사용자들이 사용하는 프로그램이 있는 계층
- 사용자는 프로그램을 사용해서 통신
- 애플리케이션 계층 관련 서비스

FTPFile Transfer Protocol
사용자의 파일을 업로드 혹은 다운도르하는 프로그램
파일 전송을 위한인터넷 표준으로 제어 접속과 데이터 접속을 위한 분리된 포트 사용
DNSDomain Name Server
DNS Query를 사용해서 DNS Server에 URL을 전송하고 해당 URL에 매핑되는 IP주소를 제공하는 서비스
HTTPHyper Text Transfer Protocol
웹 브라우저와 웹 서버 사이에서 웹 페이지의 Request 및 Reponse를 수행하는 프로토콜
Telnet특정 지역의 사용자가 지역적으로 다른 곳에 위치한 컴퓨터를 온라인으로 연결하여 사용하는 서비스
SMTPSimple Mail Transfer Protocol
RFC 821에 명시된 인터넷 전자우편을 위한 프로토콜로 메시지 전달을 위해서 Store and Forward 방식을 사용
암호화 및 인증 기능 없이 사용자의 이메일을 전송하는 프로토콜
SNMPSimple Network Management Protocol
네트워크에 대한 트래픽, 세션 등의 네트워크의 상태를 모니터링하고 정보를 전달할 때 사용하는 프로토콜 

 
 
전송계층 개요
TCP, UDP 존재
https://yenas0.tistory.com/135
전체적인 개요는 이미 데통때 정리를 해서.. 이걸 참고하는 게 좋을 듯
 
+) segment?
: TCP나 UDP 사용 시 해당 헤더에 메시지를 붙이는 것
 
 
 
 
 
TCP 상태 전이
: TCP의 최초 연결신청부터 연결, 종료까지의 상태 변화
: 'netstat'명령 입력 시 알 수 있음
 
TCP 상태 전이 과정
=> [client가 server에게 연결 요청 메시지인 SYN 신호 보내고 SYN-SENT 상태 됨]
=> [server는 처음 가동될 때부터 client 연결을 받기 위해 LISTEN 상태]
=> [server가 client로부터 SYN 메시지 수신하면 server는 client에게 SYN, ACK 전송하고 SYN-RECEIVED 상태로 전환]
 
 
 
슬라이딩 윈도우?
- 슬라이딩 윈도우는 흐름제어를 수행하는 방법으로 수신자가 수신받을 만큼 데이터를 전송하는 방법
- TCP 호스트 간의 효율적인 데이터 전송을 위해서 호스트 간에 송수신 혹은 수신할 수 있는 Size 정보를 제공 (송신 측의 윈도우와 수신 측의 윈도우 제공)
- Stop-and-Wait의 단점을 보완한 방식으로 수신 측의 확인신호 없이 미리 정해진 프레임의 수만큼 연속적으로 전송한다.
TCP가 사용하는 방식
  
 
 
 
 
 
인터넷 계층
- 송신자의 IP주소와 수신자의 IP주소를 읽어서 경로를 결정하거나 전송하는 역할을 수행
- 다중 네트워크 링크를 통해 패킷의 sender-destination 전달에 대한 책임을 가짐
- 인터넷 계층은 IP, ICMP의 TCP/IP 프로토콜 군이 존재하고 멀티캐스팅을 위한 IGMP, 라우팅을 위한 BGP, OSPF, RIP 등이 존재
- 경로 결정은 수신자의 IP 주소를 읽어서 어떻게 목적지까지 가는 것이 최적의 경로인지 판단하는 것
 
IP 프로토콜
IP주소 형태로 송신자와 수신자의 IP주소를 가지고 있고 IP 주소를 읽어서 최적의 경로를 결정할 수 있게 해 줌. IP 프로토콜은 32비트 주소 체계로 이루어진 IPv4와 128비트 주소체계 이루어진 IPv6가 있다.
 
TTL
:IP 패킷이 통과할 수 있는 라우터의 수 (인터넷에서 무한 정으로 네트워크에 떠도는 패킷 없애기 위해 존재)
 
IP 단편화 Fragmentation
MTU: 한 번에 통과할 수 있는 패킷의 최대 크기
-> MTU보다 패킷의 크기가 크면 패킷은 분할되고 그 정보를 Flag와 Offset에서 가짐
 
IP주소와 서브넷 마스크
- IP주소는 클래스로 분류함
- IP클래스의 구조는 네트워크 ID와 호스트 ID로 분류(호스트 ID의 자리가 크면 하나의 네트워크에 많은 수의 컴퓨터에 IP 주소를 부여해서 사용할 수 있는 것)
서브넷팅(Subnetting)
- 주어진 네트워크 주소를 작게 나누어 여러 개의 서브넷으로 구성
- 네트워크 식별자 부분을 구분하기 위한 Mask를 서브넷 마스크라고 함.
 
 

라우팅(Routing)

 라우팅 개요
- Internetwork를 통해서 데이터를 근원지에서 목적지로 전달하는 기능
- 경로 결정에서 최단 경로 선정 및 전송을 수행하는 포워딩을 함
- 목적지에 대한 경로 정보를 인접한 라우터 들과 교환하기 위한 규약

정적 경로
(Static Routing)
관리자가 라우팅 테이블을 직접 경로 설정, 경로가 고정적이며, 수동으로갱신하는 방식  
동적 경로
(Dynamic Routing)
네트워크 관리자의 개입 없이 네트워크상황 변화에 따라 인접 라우터 간에 자동으로 경로 정보를 교환 설정
경로 정보를 교환하여 최적의 경로를 결정 및 상황에 따른 능동 대처 가능 

 
라우팅 범위에 따른 프로토콜 종류

IGP동일 그룹내에서 라우팅 정보 교환
EGP다른 그룹과의 라우팅 정보를 교환

 
라우팅 프로토콜 종류

Distance Vector 경로를 결정할 때 통과해야 하는 라우터의 수가 적을 쪽으로 경로를 결정
Hop Count 또는 TTL이라고 함
Link State네트워크 대역폭, 지연 정보 등을 종합저긍로 고려해 비용을 산정하고 Link의 비용에 따라 경로를 결정하는방법으로 대표적으로는 OSPF.
주기적으로 지연과 같은 정보를 라우터 간에 공유해야 하고 라우터 브로드캐스트를 통해 공유   

 
 
RIP(Routing Information Protocol)

개념RFC 1058에 정의 되어있으며 대표적인 거리 벡터 라우팅 프로토콜
동작원리- 라우터 간 거리 계산을 위한 척도로 hop count 사용
-16hop 이상일 시 패킷 폐기
- 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로는 이상 상태로 간주
- 수신된 목적지의 거리 값과 현재 거리 값을 비교하여 작은것을 기준으로 라우팅 테이블을 변경 
라우팅 정보라우팅 정보 변경 시 모든 망에 적용하므로 큰 규모의 망에는 적합하지 않음

 
 
 
OSPF(Open Shortest Path First)
- 대규모 IP망에서 사용
- Link State Routing Protocol
- 링크에서 전송 시간을 링크 비용으로 사용하여 각 목적지 별 최단 경로 구함
- 네트워크에 변화가 발생했을 시 상대적으로 짧고 간단한 링크 상태 정보를 교환
- link의 delay, throughput, reliability 정보를 이용
- 네트워크를 Area로 구분하여 많은 라우팅 정보의 교환으로 인한 라우터의 성능 저하를 예방하고 대역폭 절약
- 링크 변화감지 시 변경된 링크에 대한 정보만을 즉시 모든 라우터에 전달하여 빠르게 라우팅 테이블을 갱신
 
 
ICMP(Internet Control Message Protocol)
- TCP/IP에서 오류를 제어하는 프로토콜
- 호스트 및 라우터는 다른 호스트나 라우터가 현재 도달 가능한지의 여부를 결정
- 라우터는 특정 목적지 네트워크로 후속 IP 데이터그램을 보내는 데 사용할 수 있는 더 좋은 경로가 있음을 근원지 호스트에서 통지
- 호스트나 라우터는 처리하기에 너무 빠른 IP 데이터그램이 도착하면 이를 다른 시스템에 통보
- IP 패킷 처리 도중 발견된 문제 보고
- 다른 호스트로부터 특정 정보를 획득하기 위해 사용
- TCP/IP 프로토콜에서 두 호스트 간에 에러 처리를 담당
- 통신이 정상적으로 이루어지는지 확인
 
 
ICMP 메시지 구조

typecodechecksum
identifiersequence number
optional data

- Type: ICMP 메시지 유형 표시
- Code: Type과 같이 사용되며 세부적인 유형을 표현
- Check Sum: IP Datagram Checksum
 
TTL의 역할
- ICMP는 TTL이 설정됨.
- TTL은 0이 되면 패킷이 자동 폐기
- 패킷이 정해진 시간 내에 도착하지 않으면 ICMP는 시간초과 메시지 보고
 
 
데이터 전송 방식

Unicast1 : 1 전송 방식
Broadcast1 : N 전송 방식
(동일한 서브넷 상의 모든 수신자에게 전송)
MulticastM : N 전송 방식
(하나 이상의 송신자들이 특정 그룹의 수신자에게 전송)

 
 
멀티캐스트와 IGMP
- 멀티캐스트는 그룹에 등록된 사용자에게만 데이터를 전송. 그룹에 등록된 사용자를 관리하는 프로토콜이 IGMP
IGMP
- 멀티캐스트 시에 멀티캐스트에 참석하는 수신자 정보를 제공한다.
- 1대 N 방식으로 멀티캐스트 그룹에 메시지를 전송
- 호스트와 라우터 사이에 이루어지며 TTL이 제공됨
- 시작 호스트에서 수신을 받을 목적지 호스트들에게 메시지를 전송
 
IGMP 메시지는 8byte로 구성됨(Version, Type, Group id를 포함)
 
NAT(Network Address Translation)
- 사설 IP를 라우팅이 될 수 있는 공인 IP로 변경하는 주소 변환
- Normal NAT, Reverse NAT, Redirect NAT, Exclude NAT .. 이 포함됨
 
장점
- 공인 IP 부족 해결
- 보안성
- ISP(Internet Service Provider) 변경에 따른 내부 IP 변경을 최소화
 
ARP
- ARP 프로토콜은 IP 주소를 물리적인 하드웨어 주소인 MAC 주소로 변경하는 프로토콜.
- IP를 MAC에 매핑
- IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP호스트의 ARP 캐시라 불리는 메로리에 테이블 형태로 저장된 후 다음 패킷 전송 시에 다시 사용한다.
- ARP Cache Table은 MAC 주소와 IP 주소를 보유하고 있는 매핑 테이블
 
RARP
- Diskless Host에서 사용하는 것으로 운영체제도 없는 일종의 더미 터미널
- MAC을 기반으로 IP를 알아오는 프로토콜
- 하나의 호스트를 RARP 서버로 지정
- 디스크 없는 워크스테이션은 RARP Request 패킷 전송
- RARP 서버는 디스크가 없는 워크스테이션들의 MAC을 인터넷 주소로 매핑
- RARP 서버는 인터넷 주소를 포함한 RARP Response 패킷으로 응답
- RARP 요청 메시지는 브로드 캐스틀 전송하고, RARP 응답 메시지는 유니캐스트로 전송
 
네트워크 접근 계층 (Network Access)
- LAN 카드의 물리적 주소인 MAC 주소를 가지고 전기적인 비트 신호로 메시지를 전송하는 계층
- Physical Layer가 이해할 수 있는 헤더를 붙여주는 Layer, Frame단위, MAC Address를 사용하는 계층
- 통신기기 사이에 연결 및 데이터 전송 기능을 지원
- 프레임(Frame)을 비트단위로 전송 
 
 
Frame 구조

 HeaderPayloadFooter
PreambleSOFDestination
Address
Source
Address
TypeDataPADFCS
8 bytes64 ~ 1518 bytes

- Preamble: 동기화 정보 소유
- SOF(Starting Frame Delimiter): 프레임 시작을 알리는 구분자
- Destination Address: 수신지(목적지)의 MAC
- Source Address: 송신자의 MAC
- Type: 상위 계층의 프로토콜 종류
- PAD: 프레임 길이를 맞추기 위한 영역으로 64 byte길이를 만족하지 못하면 나머지 부분은 0으로 채움
- FCS(Frame Check Sequence): 비트열의 오류를 검사하기 위해서 사용


응용 프로토콜
Telnet
원격으로 서버에 로그인하여 작업할 때 자주 사용.
TCP 프로토콜을 사용해 원격 연결 시도하고 포트 번호는 23번 포트를 기본적으로 사용
services
리눅스 시스템에서 사용하는 포트 번호는 /etc/services 파일에 등록
SSH
텔넷은 암호화 안해서 송수신 데이터를 모두 암호화하는 SSH를 많이 사용함
HTTP
웹브라우저와 웹 서버 사이에 메시지를 송신하거나 수신하는 프로토콜
stateless함
80번 포트 사용
헤더와 바디로 구분됨(사이에는 개행문자 존재)
FTP
TCP프로토콜 사용
서버에 파일을 올리거나 다운로드하는 인터넷 표준 프로토콜
포트 두개 사용
DNS(Domain Namem Service)
인터넷 네트워크상에서 컴퓨터의 이름을 IP주소로 변환하거나 해석하는 데 사용되는 분산 네이밍 시스템

반응형

'학회_공부해요 > 네트워크' 카테고리의 다른 글

#5. 네트워크 운용기기  (0) 2024.05.22
#4. NOS(Network Operating System)_2  (0) 2024.05.14
#3. NOS(Network Operating System)  (0) 2024.05.07
#01. 네트워크 일반  (0) 2024.03.26
#00. 네트워크 기본 개념 정리  (1) 2024.03.26