개발자 끄적끄적
프로토콜 본문
<프로토콜>
<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 |