블로그 이미지
김고노

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Notice

2018. 11. 15. 20:06 네트워크 복습 - 시스코


패켓트레이서로 구성한 간단한 네트워크가 있다


가장 기본적인 LAN 이다.


PC 와 Switch 와 Router로 이루어져 있다.


PC 는 우리의 컴퓨터고


Switch 는 중간에서 연결을 도와주는 녀석이라고 보면 된다.


그리고 Router 는 보통 Gateway 라고 한다.


Gateway 는 말그대로 문


다른 세계로 향하는 문이다. 한마디로 다른 네트워크로 가기 위한 문이라고 보면된다.


공항에서 비행기타는 출입구를 Gate 라고 한다. 


다른 세계로 나가기 위해서는 문을 거쳐서 나가야 한다.






하나의 네트워크가 더 추가 됬다.


PC1 에서 보면 PC2 는 다른 세계에 있는 다른 네트워크 이다.


pc1 쪽은 192.168.1.x 이고 pc2쪽은 10.1.1.x 이다.


이것만 봐도 다른 네트워크 인 것을 알 수 있다.



우리는 이러한 구조를 통해 인터넷을 통해 다른 사람들과 통신을 할 수 있다.


PC1 과 PC 2가 통신이 되는지 알아보려면 ping 이라는 명령어를 이용하면 된다.




이런식으로 Reply , 즉 응답을 받으면 통신이 잘 되는 것이다.


앞서 배운 클라이언트와 서버와의 관계처럼 네트워크에서는

 

요청(ping) 을 하면 응답(reply)이 와야한다. 그래야 통신이 잘 되는 것이다.




이러한 과정을 간략하게 설명을 해보면


PC1 에서 PC2 로 통신을 하기위해서는 주소를 알아야 한다.


MAC 주소는 알 수가 없고 보통 IP 주소만 알고 있다.


PC1 이 같은 네트워크대역에 


"10.1.1.1 이 누구니? 그녀석 MAC 주소좀 알고 싶은데" 하고


ARP 브로드캐스트 메시지를 보낸다. 


브로드캐스트는 같은 네트워크 대역에 싹 다 뿌리는 것이고


그림에선 스위치와 라우터가 받는다.


브로드캐스트는 다른 네트워크로는 갈 수가 없다.


오로지 자신의 브로드캐스트 도메인에서만 뿌려진다.


하지만 저런 IP 는 네트워크에 없다. 


스위치는 중간에서 전달만 하는 녀석이고


라우터가 메시지를 받는다. 


라우터는 똘똘한 녀석이라 이렇게 응답해준다.


"PC1 아. 10.1.1.1 에 뭘 보내고 싶으면 내게보내. 내가전달해줌"


하고 연결된 Router2 에게 전달해준다.


그리고 Router2 는 자기 네트워크 안에 있는 PC2 의 맥어드레스를 찾게되고


알아낸후 맥 어드레스를 이용해서 전달한다.






데이터 전송 프로토콜


1. TCP


TCP 는 Transmission Control Protocol 의 약자로


영어 그대로 전송을 제어해주는 도구라고 보면 된다.


Layer 4계층 프로토콜이고


연결 지향성 프로토콜로 일단 상대방과 연결부터 하고 


연결이 잘 됬으면 이후 데이터 요청 및 응답을 하면서 통신을 한다.


전화통화를 생각하면 쉽다. 연결이 되야 통화를 하니까


실제로도 TCP 는 전화망에서 쓰는 프로토콜을 본 따서 만들어서


거의 비슷하다고 보면 된다.



TCP 의 연결은 3way hand-shaking 해야한다.


이 과정이 성립되어야만 연결이 성립되고


통신을 할 수 있다




A                    B




A와 B가 통신을 하려면


A가 먼저 Syn(통신합시다)를 보내고


B가 Syn(통신합시다)에 대한 응답(Ack)와 Syn(통신합시다)를 같이 보낸다


A는 B의 Syn에 대한 응답(Ack)를 보낸다.





TCP 의 특징은


양방향 데이터 전송이 가능하며 


데이터 스트림 서비스(데이터를 분할해서 보냄)를 지원한다.


단위는 세그먼트고 분할 순서는 시퀀스 넘버로 나타낸다.


데이터가 너무 크면 보내기 힘드니까 분할해서 보내야 하니 분할하는 것이다.






그리고 오류제어 및 정정 기능이 있다.





checksum 이 오류를 체크 해주는 기능이고


오류발생시 데이터를 재전송한다. 


하지만 재전송을 했는데도 일정 시간이 지나도 


Ack 가 오지않으면 연결을 끊어버린다.





흐름제어기능도 가지고 있다.


흐름제어는 말 그대로 데이터의 흐름을 제어하는 기능으로 


데이터를 보내는 속도를 조절해서 데이터를 보냈을 때 받았다는 응답이 와야


다음데이터를 전송하는 방식이다. 신경쓰지 않고 계속 보내다보면 


데이터의 유실이 발생하기 때문


흐름제어기능은 대표적으로 2가지 방법이 있다.




Stop & Wait




간단하게 데이터 하나를 보내서 받으면 응답을 보내고


다시 하나보내고 응답을 받고 이걸 반복하는 형식


느리기도하고 일일히 응답하니까 Ack 양도 많고 그러다보니


딜레이도 생긴다.


현재 이 방식을 쓰는 네트워크는 거의 없다.





Eigrp 프로토콜에서 쓰는 stop & wait


지속적으로 주고받을 데이터가 별로없어서 


시퀀스번호를 보내면 그에 해당하는 Ack 를 응답








Sliding window



TCP는 흐름제어 방법으로 슬라이딩 윈도우를 사용




A가 1이라는 데이터를 보내면 B가 Ack 1 을 보내는것이 아니라


Ack 2를 보낸다 "이정도만큼 더보내도 된다"라는것


그래서 2,3 을 보내면 다시 Ack 4를 보내고


4,5,6,7 을보내고..... 점점 늘려간다


세그먼트를 점점 늘리다가 혼잡이 발생하면


세크먼트양을 절반으로 줄여버린다.


그 다음 다시 또 증가하다가 또 혼잡이 발생하면


다시 줄여버린다. 이걸 반복한다.


슬라이딩 윈도우를 쓰면 Stop & wait 에 비해


Ack 양을 줄일 수 있고 딜레이를 줄일 수 있다.




















따로 표시되지 않은 위의 2개 bit 는 혼잡제어를 담당하는데


보통 그냥 라우터에서 QOS 정책을 써서 해결한다.



2bit를 사용하려면 특정 어플리케이션 프로그램이 필요하고


그래서 혼잡제어 2bit는 효용성이 있는지 없는지 말이 많다고 한다.  






2. UDP


UDP 는 특징이 없는 것이 특징이다.


Layer 4계층이고


TCP 에서 하는 특징들중에 오류 검사만 있다


재전송도 X


비연결 지향 프로토콜이다.




왜 만들었나?


나름 대로 필요 하니까 만들었다.


용도가 다르게 개발되었다고 보면 된다.



TCP 는 통신 연결이 필요할 때 쓰는것이고


UDP 는 통신 연결이 불필요할 때 쓰는것이다



보통 UDP 는 TCP 에 비해 신속성이 있다고 하는데


연결과정이 없기 때문이라고 보면 된다.


그리고 연결이 안되니 상대적으로 신뢰성은 떨어지는 것이기도 하다.


그런데 솔직히 둘 다 0.00 몇 초 정도로 사람은 구분 할 수 없는 속도이기도 하다.






UDP 중에 ntp 서비스가 있는데


윈도우 7은 하루에 2번 서버에 요청을 해서 시간을 동기화 시킨다.


"몇시냐?"  "몇시야" 라고 단순하게 끝나는 통신이기에


굳이 TCP 처럼 연결을 해서 복잡하게 할 필요 없는 것


상황에 맞게 쓰이도록 설계가 되었다.




'네트워크 복습 - 시스코' 카테고리의 다른 글

시스코 6일차  (0) 2018.11.20
시스코 5일차  (0) 2018.11.19
시스코 4일차  (0) 2018.11.16
시스코 2일차  (0) 2018.11.14
시스코 1일차  (0) 2018.11.13
posted by 김고노