인터넷 프로토콜 계층
App에서 TCP로 Message를 보냄TCP에서 Message와 송수신자의 각 포트 번호를 담은 Segment를 만들어 IP로 보냄IP에서 Segment와 송수신자의 각 IP 주소를 담은 Datagram을 만들어 Ethernet으로 보냄Ethernet에서 Datagr
1티어 : 1대의 컴퓨터에 여러 대의 모니터 및 키보드 등이 연결된 환경2티어 :
네트워크 토폴로지(Network Topology) : 네트워크의 구성 요소들이 연결된 방식기본적인 토폴로지는 스타형(star), 링형(ring), 버스형(bus)이 있다.스타형링형버스형
Unicast1:1 통신출발지(sender)와 목적지(destination)의 주소가 특정 node나 host의 주소인 경우Broadcast1:N 통신목적지의 주소가 불특정 다수인 패킷FF:FF:FF:FF:FF:FF(MAC 주소), IP 마지막 주소(xxx:xxx:xx
CSMA/CD(Carrier Sense Multiple Access with Collision Detect)
Ethernet로버트 밥 매트칼프에 의해서 최초 설계되었다.CSMA/CD 방식을 따른다.토폴로지 중 버스형(Bus)의 대표적인 형식이다.Link layer(링크 계층)에 해당한다.(Physical Layer 포함)
: Mac address 기반으로 네트워크의 패킷을 필터링한다.Flooding: 목표 node의 위치를 모를 경우, 패킷을 broadcast로 보낸다.Learning: Flooding으로 node의 위치를 찾으면, Bridge Table에 해당 node의 위치를 저장한
A클래스 : 128개의 네트워크가 있고, 각 네트워크 당 256^3개의 host가 존재함B클래스 : 64 x 256개의 네트워크가 있고, 각 네트워크 당 256^2개의 host가 존재함C클래스 : 32 x 256^2개의 네트워크가 있고, 각 네트워크 당 256개의 ho
host를 구분하는 고유 주소 \- 인터넷에서 유일해야 함IP는 단독으로 설정되지 않으며, netmask(subnetmask), gateway와 함께 구성된다.sequence number가 아니라 address이다. \* sequence number : 의미 없는
인터넷에서 특수 목적으로 정의되어 사용하면 안되는 IP \- 인터넷에서 할당해주지 않음 \*\* Loopback add는 보통 127.0.0.1을 사용한다.\*\* 사설 IP는 인터넷 사용이 불가하다. -> 인터넷 사용 시 다른 ip로 바뀌어 통신함
Gateway(게이트웨이)
Router(라우터)
초기 Netmask는 Class 기반이었다.네트워크의 구조가 복잡해지고, IP의 낭비가 심해짐이를 보완하기 위해 bitmasking을 사용하여 네트워크를 분할하였다.서브넷마스크를 확장한다.8비트가 똑같은 수(0 또는 255)가 아니라, 8비트를 쪼갬(128, 192 등
서로 다른 크기의 네트워크로 분할서브넷마스크의 길이를 다르게 하면 크기가 다르게 분할할 수 있다.보통 규모가 큰 네트워크부터 분할한다.bitmasking 보다 IP 낭비를 덜 할 수 있다.1.1.1.0/24 네트워크를 위 그림과 같이 분할하는 과정A의 host가 가장
NAT(Network Address Translation) 기존 NAT : 다른 네트워크와 통신할 때 사설 IP를 공인 IP로 바꾸어 통신하는 기술 (공인IP와 사설IP는 1:1로 매핑되었다.) PAT : 기존 NAT가 1:1로 매핑되는 것이 비효율적이라 여겨져 공인
인터넷 제어 메시지네트워크 관리를 위해 사용됨ping, traceroute(tracert) 명령이 있다.ping 뒤에 특정 대상의 ip를 붙이면 해당 ip주소를 가진 host에게 ICMP 메시지를 보낸다.해당 ip로 접속은 되지만, ping 명령의 답을 받지 못하면 해
상대방의 IP주소를 이용하여 MAC주소를 알아내는 프로토콜정확히는 상대방의 Network layer의 주소로 Link layer의 주소를 알아내는 데 사용되는 프로토콜이다.상대방 IP주소를 물리 계층으로 Broadcast 패킷을 보낸다.해당 IP주소를 갖고 있는 hos
process 간의 logical communication 제공process : 실행중인 프로그램(포트번호 할당됨)end system에서 작동한다.송신측 : message를 segment로 변환하여 network layer에 전달수신측 : network layer로부터
App layer에서 TCP로 Message를 전달할 때, Socket을 통해 전달한다.App과 Trans는 서로 알 필요가 없음\-> 프로그램 간소화UDP 소켓목적지 IP와 목적지 포트번호로 식별된다.\-> 출발지가 달라도 목적지가 같으면 하나의 소켓을 통해 전달됨.
Transport layer에서 할 수 있는 최소한의 기능으로 동작App과 IP가 거의 직접 통신하는 것이다.mulx(다중화), demulx(역다중화) 기능만을 제공한다."best effort"통신하는 데 있어 최선을 다한다.통신 성공을 보장하지는 않는다.connect
전송된 Segment의 오류를 검출하기 위한 수단Segment의 내용을 16bit씩 끊어서 더한 결과에 1의 보수를 취한 것Sender(송신자)checksum을 구해 패킷에 넣어 보냄.checksum 구하는 과정Segment의 내용을 16bit씩 끊는다.16bit씩 끊
신뢰적인 data 전송
하위 채널이 완전히 신뢰적이라고 가정한다.하위 채널이 신뢰적이면 :Sender 측 TCP는 대기하다가(state),app에게 메시지를 받으면(event)Receiver에게 전달한다.(action)Receiver 측 TCP는 대기하다가(state),IP에게 패킷을 받으면
비트 오류가 발생할 수 있다고 가정checksum을 통해 bit error 감지오류 여부를 응답을 통해 Sender에게 알려주어야 한다.오류가 발생하지 않았으면 ACK(acknowledgement)오류가 발생했으면 NAK(negative acknowledgement)N
.
rdt 2.1에서 NAK를 사용하지 않는다는 점만 바뀌었다.rdt 2.1에서는 1번 패킷이 깨졌으면 NAK 1패킷을 보냈다.rdt 2.2에서는 1번 패킷이 깨졌으면 0번 패킷까지 잘 받았다는 의미로 ACK 0 패킷을 보낸다.
Switch 관련 개념
스위치 4개를 링형으로 연결시켰더니, 알아서 하나의 포트가 block되었다.show spanning-tree 명령어로 Switch1이 root switch임을 확인하였다.스위치 설정enableshow spanning-tree
rdt 2.2에서 패킷이 손실(loss)되는 것을 생각하지 않았던 것을 보완countdown timer이 추가되었다.패킷이 보내지지 않아 응답을 받지 못하는 경우 timeout이 발생하면 재전송stop - and - wait 방식패킷을 보내고, 응답이 올 때까지 기다리
Pipelined protocol(파이프라인 프로토콜)
window : 한 번에 전송할 수 있는 패킷의 개수(범위)timer : timeout 식별을 위한 것sendbase : window 내의 첫 번째 패킷timer은 sendbase에만 존재한다.RTT : window size만큼이 ACK되는 데 걸리는 시간패킷의 순서를
깨진 패킷만 재전송받는 방식GBN(Go-Back-N)과 달리 잘 전송받은 패킷을 폐기하지 않음해당 패킷들은 버퍼링한다.모든 패킷이 각각 깨졌는지 검사해야 한다.Timer가 모든 패킷에 존재한다.누적 ACK가 아니다.패킷을 잘 받았는데 ACK 응답이 손실된 경우, tim
point-to-point : 중간 과정에는 관심x1대1 통신방식in-order : 순서를 지킨다flow control ⇒ receiver가 받을 수 있는 만큼 sender가 보내도록 한다(흐름 제어)receiver의 성능이 좋아져 별로 상관없어짐누적 ACK 사용Sen
ACK가 손실된 경우응답 패킷이 손실된 후, Timeout이 발생하여 재전송한다.ACK가 늦게 도착한 경우Seq92 패킷의 ACK이 Timeout 이후 도착하여 재전송하였다.Seq100 패킷도 잘 받았기 때문에, Seq92를 재전송 받고 응답으로 Ack120을 보낸다.
Receiver의 가용한 버퍼의 크기를 Sender에게 알려주어 Buffer Overflow가 발생하지 않도록 하는 것.Sender은 window size를 Receiver 버퍼의 크기보다 작게 설정한다.흐름제어(flow control) : 속도를 일치시키는 것 → r
TCP의 혼잡 제어 방식
ARP request가 닿는 모든 범위(broadcast 패킷을 주고받는 범위)스위치 1개로 브로드캐스트 도메인을 분할할 수 있도록 하는 기능스위치 내부를 여러 개의 독립 스위치 장비처럼 분할해주는 기능이웃 스위치와 통합해주는 기능위 그림에서는스위치 1개로 스위치 2개
서로 다른 네트워크를 연결하는 장치gateway 역할AS(Autonomous System)각 기관이나 단체가 독립적으로 운영하는 네트워크하나의 AS망 안에 있는 라우터들은 같은 라우팅 프로토콜을 사용한다.distance vector : 라우터 간에 거쳐가는 경로 중 최
모든 경로에 대한 정보를 관리자가 직접 입력하는 방식사람이 직접 입력해야 하기 때문에, 설정하는 것이 어렵지만 통신 비용은 적다.라우터가 많지 않을 때 유용하다.모든 네트워크 정보를 입력하는 것은 어렵기 때문에, 기본 라우팅 정보를 입력한다.모르는 ip 주소를 가진 h
R1에서 R2로, R2에서 R1로 통신하도록 Static Routing을 하였다.코드R1, R2 ip주소Static Routing
\#실습
Routing Information Protocol각 라우터가 본인이 어떤 라우터와 연결되어 있는지를 광고한다.라우터에 변경 사항이 생기면, 즉시 수정된 라우터 정보를 광고한다.따라서 특정 경로가 죽어도 연결이 된다. (auto routing)default route
해당 라우터의 rip에 1.1.1.0 네트워크 등록RIP을 사용하여 R1, R2, R3을 연결하였다.각자 본인이 속해있는 네트워크 주소를 공유한다.명령어R1, R2, R3 ip주소 등 기본정보 세팅Routing(RIP)결과Routing이 잘 설정되었다.R1R2R3PC간
RIP v2
가장 많이 사용하는 라우팅 프로토콜SPF 알고리즘을 사용한다.SPF 알고리즘 : 최단경로를 찾아주는 알고리즘Area : 라우팅 정보를 공유하는 범위Neighbor : 동일 area에 속해있는 router인접관계 : 직접 라우터 정보를 주고받는 관계모든 라우터는 DR,
ospf의 process-id 및 router-id 지정해당 router이 연결되어 있는 network 주소 등록1.1.1.1, 12.1.1.1 -> ip주소0.0.0.0 -> 와일드마스크(subnet : 255.255.255.255)area 지정ospf를 구성하였다.
Enhanced Interior Gateway ProtocolBandwidth, Delay를 이용하여 Metric을 계산한다.EIGRP의 장점경로 바꾸는 속도가 월등히 빠름(장애에 대응 잘함)bandwidth : 가장 느린 경로를 선택함p.6 그림에서 A→D까지 갈때a