개발자 끄적끄적

프로토콜 본문

Linux

프로토콜

햏치 2023. 3. 3. 23:13

<프로토콜>

<OSI 7계층>

1. OSI 7계층(Open System Inerconnction)
- 개방형 시스템의 네트워크 효율적인 이용을 위하여, 모든 데이터 통신 기준으로
  계층을 분할하고, 각 계층간의 필요한 프로토콜을 규정
- ISO(international Organization for Standardization)표준 지정


2. OSI 7계층 목표
- 정보가 전달되는 Framwork를 제공, 네트워크 형태에 차이가 발생해도
  데이터 통신을 지원
*Framework : 작업(Task)를 처리하기 위한 기본적인 틀을 의미하고 
                  상세한 부분까지는 정의하지 않는다


<OSI 7계층>

1. 상위계층 : 애플리케이션~트랜잭션 계층
- 애플레이션 계층 : 사용자의 프로그램이 존재하는 영역으로,
  파일 업로드 및 다운로드, 인터넷 표준은 FTP
  네트워크 모니터링 정보를 UDP를 통해서 전송하는 SNMP
  웹 브라우저를 사용해 80번 포트로 웹 서버와 연결되는 HTTP
  원격으로 서버에 접속하는 Telnet
  메일을 발송하는 Mail 프로그램등이 존재

2. 하위계층 : 네트워크~물리계층

- 프레젠테이션 영역 : 응용계층에서 만든 메시지를 압축하거나, 암호화,
  코드변환 등을 수행한다
  - 압축 : 메시지와 중복된 데이터를 제거하여 송수신되는 데이터 용량을
    줄일 수 있는 것이다
  - 암호화 : 암호화 키와 메시지를 XOR와 같은 방법으로 암호문을 만들거나
  복호화를 수행하는 과정이다
  - 코드변환 : 메시지의 포맷을 ASCII Code, EBCDIC 코드 등과 같은 형태로 변환

- 세션계층 : 연결방식을 결정하는 것
  송신자와 수신자 간에 동기화를 수행하고 반지중, 전이중, 완전이중 방식을 결정


<OSI 7계층 구조>

[7.Application]
- 사용자 소프트웨어를 네트워크에 접근 가능하도록 한다
- 사용자에게 최종 서비를 제공한다
->FTP, SNMP, HTTP, Mail, Telnet 등

[6.Pressentation]
- 포맷기능, 압축, 암호화
- 텍스트 및 그래픽 정보를 컴퓨터가 이해할 수 있는 16진수 데이터로 변환
->압축, 암호, 코드 변환
->MIDI, MPEG, JPEG 암호화
->GIF, ASCII, EBCDIC

[5.Session]
- 세션 연결 및 동기화 수행, 통신 방식 결정
- 가상 연결을 제공하여 Login/Logout
->반이중, 전이중, 완전이중 결정
->RPC, X Window, NFS, SQL, ASP
->SSL

[4.Transport]
- 가상연결, 에러제어, Data 흐름제어, Segment 단위
- 두 개의 종단간 End-to-End 데이터 흐름이 가능하도록 논리적 연결
- 신뢰도, 품질보증, 오류탐지 및 교정 기능 제공
- 다중화(Multiplexing)발생
->TCP, UDP, SPX

[3.Network]
- 경로선택, 라우팅 수행, 논리적 주소 연결(IP)
- 데이터 흐름 조절, 주소 지정 매커니즘 구현
- 네트워크에서 노드에 전송되는 패킷 흐름을 통제하고, 
  상태메시지가 네트워크상에서 어떻게 노드로 전송되는 가를 정의, Datagram단위
->IP, ICMP, IPX
->라우팅 프로토콜(RIP, OSPF, BGP)

[2. Data Link]
- 물리주소 결정, 에러제어, 흐름제어, 데이터 전송
- Frame 단위, 전송오류를 처리하는 초최의 계층
->흐름제어, 오류제어(ARQ)
->브리지, PPTP, L2TP, HDLC
->Frame Relay

[1.Physical]
- 전기적, 기계 연결정의, 실제 Data Bit전송
- Bit 단위, 전기적 신호, 전압구성, 케이블, 인터페이스 등을 구성
- Data Rates, line noise control, 동기화 기능 수행
->매체 : 동축케이블, 광섬뮤, Twist Pair Cable
->ISDN, 리피터, Hub, X, 21



<트랜스포트 계층>
1. TCP(Transmission Control Protocol)
- 송신자와 수신자 간에 가상연결을 통해서 데이터를 전송
- 전송 도중에 에러가 발생했는지 탐지
- 에러가 발생하면 재전송하여 신뢰성 있는 데이터 전송 수행


2. UDP
- 가상연결을 수행하지 않는다
- 수신자에게 데이터를 전송하며 에러탐지 및 재전송 같은 기능이 존재하지 않아
  비신뢰선 전송이라고 한다


<네트워크 계층> 
- 네비게이션 연할을 수행하는데, 
  이것은 IP주소를 사용해서 수신자에게 가능 경로를 결정한다
- 경로의 결정 : 라우터 라는 장비를 통해 이루어진다
- 라우팅 알고리즘 : 수신자로 가는 최적의 경로 결정
- 데이터그램 네트워크 : 네트워크 계층에서 IP주소를 이용해 경로를 결정


<데이터 링크 계층>
- 송수신 중에서 발생할 수 있는 에러를 구간별로 탐지하고 에러를 정정
- 데이터 링크 : 데이터 전송을 위해서 Frame이라는 헤더를 붙여서
  물리적 주소를 식별한다

<물리적 계층>
- 전기신호로 변환하고 디지털 정보인 0 혹은 1을 흘려보내 실제 통신이 
  일어난다




<OSI 7계층별 네트워크 장비>

<네트워크 장비>
1. Physical
  1) Cable 
  2) Repeater
  - 네트워크 구간의 케이블의 전기적 신호를 재생하고 증폭하는 장치
  - 디지털 신호를 제공, 아날로그 신호 증폭 시 잡음과 왜곡까지 증폭

2. Data Link
  1) Bridge
  - 서로 다른 LAN Segment를 연결, 관리자에게 MAC주소 기반 필터링을 
    제공하여 더 나은 대역폭 사용과 트래픽을 통제
  - 리피터와 같이 데이터 신호를 증폭하지만, MAC기반에서 동작
  
  2) Switch
  - 목적지의 MAC주소를 알고 있는 지정된 포트로 데이터를 전송
  - Repeater와 Bridge 기능을 결합
  - 네트워크의 속도 및 효율적 운영, Data Link 계층에서도 작용

3. Network
  1) Router
  - 패킷을 받아 경로를 설정하고 패킷을 전달
  - Bridge는 MAC주소를 참조하지만, Router는 네트워크 주소까지 참조하여
    경로를 설정
  - 패킷 헤더 정보에서 IP 주소를 확인하여 목적지 네트워크로만 전달하며 
    Broadcasting을 차단

4. Application
  1) Gateway 
  - 서로 다른 네트워크망과의 연결(PSTN, Internet, Wireless Network 등)
  - 패킷 헤더의 주소 및 포트 외의 거의 모든 정보를 참조



<TCP/IP 프로토콜>
- TCP, UDP, IP, ICMP, ARP, RARP로 구성

1. TCP(Conncetion Oriented Protocol(연결지향)
- 사용자에게 신뢰성 있는 서비스를 원한다
- 신뢰성 있는 서비스를 위해서 Error Control 기법을 포함
- 송신자가 보낸 메시지에 대해서 수신자가 전송을 받았는 지 확인하기 위해서
  수신자는 Ack를 송신자에게 전송한다

2. UDP(User Datagram Protocol) - Connectionless Protocol(비연결)
- 데이터 전송을 보장하지 않는 비신뢰성 서비스를 제공
- TCP에 비해서 전송 속도가 삐르다

3. IP
- 네트워크 주소와 호스트 주소 정의에 의한 네트워크의 논리적 관리를 담당하는 
  것으로 송신자와 수신자의 주소를 지정

4. ARP(Address Request Protocol)
- IP Address를 LAN카드의 물리적 주소인 MAC주소로 변환한다

5. RARP 
- MAC주소를 IP Address로 변환하는 역할을 수행한다

6. ICMP(Internet Control Message Protocol)
- 네트워크의 오류와 상태를 점검하기 위해서 사용한다




<TCP 프로토콜>
- 신뢰성 있는 데이터 전송을 위해서 가상의 연결을 수행한다
- 재전송 방법 : GO-BACK-N
- 혼잡제어(Congestion Control) : 동일한 ACK번호가 송신자에게 계속 되돌아오면,
  송신자는 전송 속도를 낮춘다(네트워크의 과부하 유발 방지)
- Sequence 번호를 가지고 메시지의 순서를 파악할 수 있게 해준다
  - 송신자의 메시지가 꼭 순서적으로 도착하지 않는다
    이유는, 비동기 방식으로 데이터를 보내면서 경로 또한 다른 경로로 보내질 수 있다
- Check Sum : TCP와 UDP모두 존재
  - 송신 중에 메시지의 변조를 파악하기 위해 송신자와 수신자 간에 에러를 체크
  - 즉, 패리티 비트 같은 것
- Receive Window : 수신자의 윈도우 크기를 의미,. 메모리 버퍼를 이야기
  즉, 수신자가 버퍼가 비어 있으면 송신자는 해당 버퍼의 크키만큼 
  데이터를 한꺼번에 전송한다(전송 효율을 관리)

- 신뢰성 있는 전송 : 수신자는 테이더 통신을 받고 Ack Number를 송신자에게 전송
  송신자가 Ack Number가 수신되지 않으면 재전송을 싱행하여 신뢰성 있는 
  데이터 송수신을 수행

- 순서 제어 : 송신자의 메시지 순서를 맞추기 위해서는 송신자는 메시지 전송 시에
  Sequence Number를 같이 보낸다 
  수신자는 메시지의 순서가 맞지 않게 도착해도 Sequence Number를 통해서
  정렬을 수행할 수 있다

- 완전이중(Full Duplex) : 전화기처럼 송신자는 송신, 수신자를 수신을 동시에 할 수 있다

- 흐름제어(Flow Control) : 수신자가 메시지를 제대로 받지 못하면, 
  송신자는 전송 속도를 늦추어 네트워크 효율성을 제어한다

- 혼잡제어(Congestion Control) : 수선자의 메모리 버퍼 정보 즉, Window Size를
  송신자가 수신받아서 수신자의 버퍼 상태를 보고 전송 속도를 조절한다



<UDP 프로토콜>
- UDP는 TCP가 수행하는 기능 중 Check Sum기능만 가지고 아무런 기능이 없다
- 데이터를 무조건 전송, 에러가 발생해도 재전송은 하지 않는다
- UDP를 비신뢰성 전송이라고 한다
- 기능이 없고 헤더의 구조가 단순하기 때문에 데이터 송수신 속도가 빠르다



<UDP(User Datagram Protocol)>
- 비연결성, 비신뢰성의 특성으로 Packet을 빠르게 전달할 수 있는 프로토콜
- 송수신의 여부에 대한 책임을 Application이 가짐


<UDP의 특징>
- 비신뢰성 : Packet을 목적지에 성공적으로 전송한다는 것을 보장X
- 비접속성 : 전달되는 Packet에 대한 상태 정보 유지를 하지 않음
- 간단한 Header구조 
- 빠른 전송



<IP 프로토콜>

<IP(Internet Protocol)>
- IP계층은 송신자와 수신자의 IP주소를 붙여서 경로를 결정할 수 있게 해주고
  데이터를 전송하는 포워딩 기능을 수행한다
- IP주소 : 단말 별로 유일하게 부여된 식별자의 역할


<IP(Internet Protocol)>
- TCP/IP 망의 네트워크 계층(IP계층)의 주소화, 데이터그램 포캣, 패킷핸들링 등을
  정의해 놓은 인터넷 규약
- IP주소 구조는 클래스 라는 것으로 분류되며 클래스는 A~E로 구분된다
- 클래스는 분류하는 구조는 IP 주소의 맨 앞의 4비트를 기준으로 분류한다



<네트워크 장비>
- 고유한 주소를 가지며 네트워크 식별자와 호스트 식별자로 구성

1. 네트워크 식별자(ID)
- 네트워크별로 부여할 수 있는 자릿수

2. 호스트 식별자(ID)
- 하나의 네트워크에 IP주소가 부여될 수 있는 호스트(컴퓨터) IP



<클래스(Class)>

1. 클래스 A
- IP주소 : 시작비트 0 
- 호스트 IP주소 : 16,777,216개
- 네트워크 식별자 : 1개
- 호스트 식별자 : 3개

2. 클래스 B
- IP주소 : 시작비트 10
- 호스트 IP주소 : 65,534개
- 네트워크 식별자 : 2개
- 호스트 식별자 : 2개

3. 클래스 C
- IP주소 : 시작비트 110
- 호스트 IP주소 : 254개
- LAN(Local Area Network)에 많이 사용
- 호스트 식별자가 255이면 네트워크 전체에 브로드캐스트(Broadcast)함

4. 클래스 D
- IP주소 : 시작주소 110 
- 등록된 사용자에게만 데이터를 전송할 때 사용
- 일반 PC에 할당되지 않고 인터넷 방송과 같은 다중 사용자에게 동시에
  데이터를 전송할 때 사용



<Class 구조>
1. Class A
- 첫 바이트 7Bit가 네트워크 식별자
- 한 네트워크에 가장 많은 호스트를 가짐

2. Class B
- 14Bit의 네트워크 식별자
- 한 네트워크에 약 65,534개의 호스트 수용

3. Class C
- 세 번째 바이트까지 네트워크 식별자
- 한 네트워크에 254대까지 수용

4. Class D
- 멀티캐스트 주소로 사용



<네트워크 설정>

<ifconfig>
- 네트워크 인터페이스를 설정하거나 네트워크 인터페이스 정보를 알고 싶을 때
  사용하는 멸영어


<ifconfig 옵션>
1. Interface
- 이더넷 카드(Ethernet Card)를 의미
- ex) eth0, eth1 등

2. Address
- IP주소를 부여
- ex) ifconfig eh0 201.1.1.100

3. up 및 down
- up은 네트워크를 활성화하고 down은 비활성화
- ex) ifconfig eth0 up, ifconfig eth0 down

4. option
- netmask 및 broadcast를 설정
- ex) ifconfig eth0 201.1.1.100 netmask 255.255.255.0(up/down)




<ifconfig 명령으로 확인할 수 있는 정보>
- MAC 주소
- 인터페이스에 할당된 IP 주소
- 브로드캐스트 주소
- 서브넷 마스크
- MTU(Maximum Transfer Unit) : 최대 전송 단위
- RX packets : 부팅 후 현재까지 받은 패킷 수
- TC packets : 부팅 후 현재까지 보낸 패킷 수
- Collisions : 충돌된 데이터 값
- Interrupt 주소
- 현재 사용가능 되어 있는 지 여부



<route>
- 라우팅 테이블(Routing Table)에 라우터 정보를 추가/삭제


<라우팅 테이블(Routing Table)>
- 패킷(Packet)을 전송할 때 목적지를 찾아가는 경로를 결정하기 위해서 참조하는 정보
- 라우터의 상태 정보를 갖고 있다


<라우터 상태>
- 통신속도, 대역폭, 인접 라우터 정보 등을 가지고 있어 최적의 경로를
  결정하는 것




<ICMP 프로토콜>

<ICMP(Internet Control Message Protocol)>
- TCP/IP에서 오류 제어 프로토콜
- 호스트 및 라우터는 다른 호스트나 라우터가 현재 도달 가능한지의 여부 결정
- 라우터는 특정 목적지 네트워크로 후속 IP 데이터그램을 보내는 데 사용할 수 있는
  더 좋은 경로가 있음을 근원지 호스트에게 통지
- 호스트나 라우터는 그들이 처리하기에 너무 빠른 IP 데이터그램이 도착함을
  다른 시스템에 통보한다



<ICMP 주요기능>
- 오류 보고 메시지 : IP 패킷 처리 도중 발견한 문제를 보고
- 질의 메시지 : 다른 호스트로부터 특정 정보를 획득하기 위해 사용

'Linux' 카테고리의 다른 글

프로세스 관리  (0) 2023.03.03
패키지 관리  (0) 2023.03.03
클래스_서브넷마스크  (0) 2023.03.03