모든 네트워크 망에는 다양한 프로토콜이 존재한다.
프로토콜은 이런 네트워크 상에서 정해진 룰과 규칙 같은 것이다.
디바이스 간에 통신을 할 때 프로토콜, 룰과 규칙이 맞아야 데이터를 주고 받을 수 있다.
프로토콜 안에는 헤더와 같은 포맷이나 , 순서와 같은 규칙이 있다.
이것들이 지켜지지 않으면 통신이 잘 되지 않는다.
application (응용 - 표현 - 세션계층 존재)
→ 클라이언트 서버 구조를 많이 잡음
HTTP
→ object로 구성 되어 있음 : html, image, audio
네트워크 통신을 잘 하기 위한 것
cs구조에서 씀
client에서 클릭하면 서버쪽으로 감
Non - persistent HTTP
→ state가 없는 상태에서 tcp 연결
→ 하나의 tcp에 하나의 object만 연결
persistent HTTP
→ 여러개의 object를 대응하기위해
-------------------------------------------------------------------------------
P2P : 탈중앙화
정보를 공유할 때 P2P는 서버가 항상 필요하지 않는다.
어떤 peer 나 node가 sever나 client역할 모두 할 수 있다.
user들 upload와 download 모두 할 수 있는 것이다.
또한 누군가 가지고 있는 정보를 공유하고 업로드를 많이 할수록 다운로드 속도가 높아진다.
어떤 파일을 다수에게 배포할 떄 p2p가 소요되는 시간이 더 효율적이다.
CS 구조 (client - server)
서버는 항상 실행되고 있어야 함
서버의 IP는 항상 고정적으로 되어 있어야함
클라이언트는 서버와 접속
항상 접속X 필요에 의해
transport
transport service 4가지 관점
data integrity() - data loss
→
전송할 때 오류가 나지 않도록
vs 어떤 경우는 loss가 나도 허용해주는 경우도 있음 예) 줌
timing
→ 어떤 app은 늦게 가도 상관없고 vs
어떤 app은 꼭 실시간으로 가야됨 예) 줌, 실시간 채팅
throughput
→ 어떤 경우는 속도가 빠르지 않아도 되고 vs
어떤 경우는 속도가 빨라야 함
영상, 최소한의 속도가 나와야하고 그 밑으로 나오면 보내지도 못하고
의미가 없어짐
security
→ 보안에 민감한 데이터 vs 보안에 민감하지 않은 데이터
TCP
→ 어떤 세션 정확하게
reliable
flow control
congestion control
조금의 delay 허용
타이밍, 보안의 기능은 제공하지 않음
loss가 나오면 안됨
: FTP, SMTP, HTTP
network
NAT - network address translation
→ ip를 매칭해서 public 망과 private 망을 연결해주는 역할을 한다.
→ ip를 효과적으로 쓰기 위해서 ip주소 문제를 해결해준다.
------------------------------------------------------------------------------------------------------
intra - AS routing = IGP
→ 내부의 as 간의 router의 최적의 길을 찾아줌
→ 같은 도메인을 사용한다.
- RIP(routing information protocol)
- OSPF(open shortest path first = IS-IS protocol)
→ 다익스트라 알고르즘을 기반으로 만들었다.
→ 최소 경로를 찾아주는 것
→ link state 패킷을 기반으로 한다.
→ hierarchicl 구조이다.
→ 2개의 계층으로 되어있다 : border router(정보를 알고 있음) , backbone (다른 as 와 연결하기 위해)으로 구성되어 있다.
- IGRP
inter - AS routing
→ 외부의 망으로 넘어가는 것 가능
→ 도메인이 넘어간다.
- BGP - border gateway protocol - 특정 router 갈 수 있는 정보를 알려줌
→ 짧은 as - path 와 가까운 next - hop 이라는 2가지의 중요한 속성이 있다.
→ TCP를 기반으로 하고 있다
→ 메세지 : open, update, keepalive, notification
→ eBGP : 외부 - 도달 가능 정보
→ iBGP : 내부
SDN (Software defined networking)
→ 하드웨어와 상관없이 소프트웨어 위에 있는 control plane 기능을 바꾸고 업그레이드 할 수 있다. 제품이 문제가 생겼을 때 중앙서버에서 테스트를 해보고 문제 확인이 가능하고 비용을 낮출 수 있다.
→ SDN은 네트워크의 제어와 데이터 평면을 분리하여 소프트웨어 프로그래밍 가능 인프라를 만드는 방식으로 작동합니다.
→ 네트워크 오케스트레이션, 관리, 분석 및 자동화 기능은 SDN 컨트롤러에게 일임됩니다.
→ SDN 제어 소프트웨어를 프로그래밍하여 패킷의 흐름을 제어하므로 하나의 네트워크 인프라에서 다양한 네트워크 환경을 구축할 수 있다. 즉, SDN에서는 패킷이 발생했을 때 네트워크 장비는 패킷을 어디로 전달할지 SDN 제어 소프트웨어에게 물어보고, 그 결과를 반영하여 패킷을 전송하는 경로와 방식을 결정한다.
→ 제어를 유연하게 해준다. load balance를 가능하게 해준다.
→ OpenFlow는 SDN을 구현하기 위해 처음으로 제정된 표준 인터페이스이다.
Open Flow API
→ TCP기반으로 메세지를 주고 받을 수 있다.
→ 3가지 TYPE의 메세지가 있다. - controller _> swithch 로 , swithch → controller
→ router 마다 제어하지 않는다. 상위 remote에서 전체 router 알고리즘을 보고 flow를 제어한다.
→
OpenFlow 스위치 내부에는 패킷 전달 경로와 방식에 대한 정보를 가지고 있는 FlowTable이라는 것이 존재한다. 패킷이 발생하면 제일 먼저 FlowTable이 해당 패킷에 대한 정보를 가지고 있는지 확인한다. 패킷에 대한 정보가 존재하면 그에 맞춰 패킷을 처리하고, 정보가 존재하지 않으면 해당 패킷에 대한 제어 정보를 OpenFlow 컨트롤러에 요청한다.
스위치로부터 제어 정보를 요청 받은 OpenFlow 컨트롤러는 내부에 존재하는 패킷 제어 정보를 확인하고, 해당 결과를 OpenFlow 스위치에 전달한다. OpenFlow 컨트롤러 내의 패킷 제어 정보는 외부의 프로그램에서 API를 통해 입력할 수 있다.
OpenFlow 스위치는 컨트롤러로부터 전달 받은 제어 정보를 FlowTable에 저장하고, 이후 동일한 패킷이 발생하면 FlowTable에 있는 정보를 활용하여 패킷을 전달한다.
ICMP (internet control message protocol)
→ 목적지를 가지 못하는 원인을 알 수 있는 , error를 정리 ,확인 가능하다.
→ 네트워크 계층에서 신뢰성을 보장하기 위해 재전송한다는 scheme은 없음,
→ ping이 ICMP 기반으로 만들어짐
→ 메세지가 router에 전달 됐을 때 오류가 났을 때 icmp protocol이 따로 있기 때문에 이 프로토콜에 따라서 알려줄 수 있는 것
→ 에러 타입을 정해둠
→ header가 8btye
→ 인터넷 제어 메시지 프로토콜(Internet Control Message Protocol, ICMP)는 네트워크 내 장치가 데이터 전송과 관련된 문제를 전달하기 위해 사용하는 프로토콜입니다.
SNMP
→ 통신을 하는 것과는 또 다른 protocol
→ 장비에 대한 데이터, 통계정보 , 장비를 어느 위치에 구성하고
Data link
ARP 가 필요한 이유 - (address resolution protocol)
→ IP 주소와 MAC 주소의 mapping 이 필요하기 때문이다.
상위층에서는 host id로 찾아주는데 물리적인 주소 mapping이 돼있 어야 찾을 수 있다.
link layer로 내려가면 ip 주소와 mac 주소의 mapping table이 필요하다.
그게 ARP table이다.
ARP table이것을 활용해서 MAC 주소를 활용하여 HOST까지 찾게 된다.
이것또한 계속해서 유효한 것이 아니라 TTL까지 넣어서 준다.
→ 새로 참여한 NODE 에 MAC address 를 받아서 ARP table을 update 한다.
→ 네트워크 상에서 IP 주소를 mac 주소(물리적 네트워크 주소)로 대응(bind)시키기 위해 사용되는 프로토콜이다.
physical
'기타 > 정보처리기사' 카테고리의 다른 글
생성자 vs 오버라이딩 (0) | 2023.09.08 |
---|---|
2진수, 8진수, 10진수, 16진수/ bit와 byte (0) | 2023.08.02 |
4장 - python의 활용 (0) | 2023.05.07 |
4장 - 프로그래밍 언어 활용(printf()함수) (0) | 2023.04.20 |
4장 - 프로그래밍 언어 활용(scanf()함수) (0) | 2023.04.16 |