IT86 [ 네트워크 ] Router Router Router의 구조 1. input port 2. high-speed switching fabric 3. output port routing processor는 control plane영역. software이다. 시간은 millisecond가 걸린다. 그 아래는 data plane영역. hardware이다. 시간은 nanosecond가 걸린다. 그렇다면 bottleneck은 routing processor가 된다. 여기서 input과 output의 forwarding은 nanosecond로 빠르지만, 그 중간에서 processing하는 routing processor가 millisecond로 느리기 떄문에 input port에 queueing delay가 생기게 된다. Input port p.. 2020. 5. 14. [ 네트워크 ] Network layer Network layer transport layer vs network layer 1. transport layer end to end. 양 종단 간에 있는 신뢰성 있는 전달로 보내는 것이 transport layer이다. 2. network layer network 계층은 각각 라우터에서 모두 참조한다. 각 라우터에서 network layer의 header를 까보는 것이다. 이 때 읽은 정보를 토대로 routing하는 등 이런 부분을 처리한다. datagram transport layer에서는 segment였던 것이 network layer에서는 datagram이라고 부른다. 그래서 보내는 쪽이 segment를 datagram으로 encaptulation하고, 받는 쪽에서 segment로 바꾸어줘서 .. 2020. 5. 13. Wireshark 패킷 분석 (DNS, TCP) Wireshark 패킷 분석 (DNS, TCP) 이번에 제가 해 볼 것들은 wireshark를 통해 1. DNS request, response message 분석 2. TCP Handshaking 3. Sequence, ACK number 분석 4. persistent, non-persistent connection 확인 이것들을 간략하게 분석해 보겠습니다. DNS request, response message 분석 우선, wireshark의 filter를 port 53 으로 설정했습니다. (port 53 = DNS) 저는 http://google.com 에 접속해보았습니다. (https가 아닌, http 입니다.) 구글에 접속하려면, 맨 처음 www.google.com의 의 주소를 알려달라고 requ.. 2020. 5. 10. [ 네트워크 ] Electronic mail (E-mail) Electronic mail (E-mail) Email system은 크게 3가지로 구성되어 있다. 1. user agent ( email을 주고받는 쪽. email을 사용하는 PC) 2. mail server 3. SMTP (simple mail transfer protocol) 위의 그림은 간단한 email system을 나타낸 것이다. User Agent mail reader라고도 한다. 메일을 작성하거나 읽는 것을 수행한다. Mail server email msg를 가지고 있는 server이다. email을 갖고 온다고 하면, server에 저장되어 있는 메시지를 가지고 온다 생각하면 된다. 위 그림의 mailbox는 유저에게 들어온 email들을 가지고 있다. message queue는 나갈 e.. 2020. 5. 4. [ 네트워크 ] Web Caching (proxy server) Web Caching (proxy server) Web caches client가 멀리 있는 origin server까지 가지 않고 가까운 proxy server의 web caches 파일에 접근하여 원하는 파일을 받아오는 기술이다. 과정은 이러하다. - client가 proxy server에 접근해 caches file이 있는지 본다. => caches가 있으면 proxy server에서 데이터를 받아온다. => caches가 없으면 proxy server는 origin server로부터 데이터를 요청하여 받아온다. 받은 데이터는 proxy server에 저장된다. 그리고 client에게 데이터를 전달해준다. 그래서 최초의 client를 제외한 clients는 proxy server에서 정보를 받아올 .. 2020. 5. 4. [ 네트워크 ] Cookie Cookie Cookie란? HTTP는 state를 가지고 있지 않아, user의 id나 정보를 읽을 수 없다. 그래서 콘텐츠 제공, 차단 등과 같은 서비스를 제공하지 못한다. 이러한 단점 때문에 HTTP는 state를 가지고 있는 Cookie를 사용한다. Cookie는 state가 있어 사용자 정보를 읽어와 사용자 식별, 콘텐츠 제공 등을 수행할 수 있게 된다. Cookie의 종류 1. HTTP response message의 header line에 Cookie 2. HTTp request message의 header line에 Cookie 3. user의 host, user의 browser에 의해 관리되는 Cookie 4. 웹사이트 백엔드 데이터베이스 상에 있는 Cookie 이 4가지 종류가 어떻게 .. 2020. 5. 4. [ 네트워크 ] Web and HTTP Web and HTTP Web page는 objects로 구성되어 있다. objects는 HTML file, JPEG, Java applet, audio file 등등으로 이루어져 있다. web page는 기본 objects가 포함된 기본 HTML file로 구성되어 있다. 각 오브젝트는 URL로 addressable되어 있다. HTTP는 웹에서 사용되는 web application layer protocol이다. web application은 HTTP외에는 protocol 없다고 생각하면 된다. client는 서버로부터 정보를 받아서 display한다. 서버는 URL 정보를 가지고 있고, 해당하는 응답을 보내준다. application layer에 있는 HTTP는 아래 layer인 transport l.. 2020. 5. 3. [ 네트워크 ] Processes Communicating Processes Communicating Process Process는 호스트 내에서 돌아가는 프로그램이다. 같은 호스트 내에서 복수개의 processes가 돌아갈 수 있다. 두 개의 processes가 내부적으로 communication할 수 있다. 다른 호스트들에 있는 processes과는 messages 교환을 통해 communication한다. Client-Server 구조에서는, server는 데이터를 제공하기 위해. client는 데이터를 받기 위하기 때문에 process가 다르다. P2P 구조는 client processes와 server processes가 존재한다. Socket processes가 messages를 주고받는 경로(문)을 Socket이라고 한다. 양쪽의 applicatio.. 2020. 5. 3. [ 네트워크 ] client-server, peer to peer client-server, peer to peer Application architectures는 두가지가 있다. 1. client-server 2. peer-to-peer (P2P) Client-Server client-server 구조는 client와 server 간에 데이터를 주고받는 형태이다. client는 데이터를 요청해서 받는 쪽이고, server는 데이터를 보내는 쪽이다. Server - client가 언제 데이터를 요청할 지 모르기에, 항상 ON 상태이다. - client가 같은 IP 주소로 정보를 요청하므로 IP주소가 고정되어 있다. - data center(cloud 기반)를 통해서 서버가 운용되는 경우도 있다. Client - 간헐적으로 연결된다. - 일반적으로 동적 IP주소를 가진다.. 2020. 5. 3. [ 네트워크 ] packet sniffing, IP spoofing packet sniffing, IP spoofing packet sniffing 공유된 Ethernet, wireless 같은 곳에서 일어난다. 네트워크 정보는 모든 곳에 뿌리고 그 사람이 맞는지 체크하는 방식이다. 이런 점을 이용한 것이 packet sniffing이다. 위의 예시를 보면, - B가 A한테 정보 보냄. - 그 정보가 A한테 가는데, C한테도 감. - C가 A인척을 해서 정보를 받음. IP spoofing 네트워크에서는 반드시 IP 주소를 포함하여 패킷을 보내야한다. C가 A한테 정보를 보내는데, source 정보를 B의 IP주소로 해서 보낸다. 그래서 A는 B가 보낸 패킷으로 인식하고 받는 것이다. [참고] Computer Networking A Top-Down Approach 7-th.. 2020. 5. 3. [ 네트워크 ] Internet protocol layers Internet protocol layers 네트워크는 매우 복잡하다. 매우 많은 "pieces"가 존재한다. hosts, routers, links of various media, applications, protocols, hardware, software etc... 이런 상황에서 어떻게 구조를 잘 만들까..?? 바로 네트워크는 layer 별로 구분을 해놓아서 각기 다른 기능을 수행해낸다. 네트워크에서 layer를 나눈다는 것은 소프트웨어에선 Component를 나눈다는 표현과 같다. 컴퓨터를 생각해보자. 일체형 컴퓨터를 보면, 모니터와 본체가 붙어있다. 하나라도 고장나면 전부 가져가야 한다. 일체형이 아니라 분리형 컴퓨터라면, 고장나면 고장난 것만 가져가면 된다. 즉, 각각 모듈별로 관리해주면 되.. 2020. 5. 3. [ 네트워크 ] Throughput Throughput Throughput 한마디로 성능이다. 단위시간 동안 sender와 receiver가 교환된 데이터의 양을 말한다. 정확히 말하자면 데이터를 보내는 source가 목적지를 향해서 데이터를 보냈고, source가 받은 데이터의 양을 말한다. throughput은 link의 bandwidth가 고정되었다 하더라고, 망상태에 따라(사용자가 얼마나 몰렸느냐) 달라지기도 한다. bottleneck link 네트워크의 각 link의 capacity가 다를 수 있다. 이런 상황에서 자기가 가지고 있는 capacity를 낭비하거나 패킷이 버려지게 된다. 그렇다면 어떻게 해결해야 할까? 가장 좁은 길을 파악해서 그 좁은 길의 용량만큼 보내야 한다. 가장 좁은 길(가장 성능 낮은 link)을 bottl.. 2020. 5. 3. [ 네트워크 ] Packet delay and loss Packet delay and loss 단위시간 동안 도착하는 패킷의 수가 output link의 capacity를 넘어설 때 라우터의 queue에 패킷이 대기상태로 쌓이게 되어, delay가 발생하게 된다. 이것을 queueing delay라고 한다. 만약 queue가 가득 차서 더 이상 패킷을 받을 공간이 없다면...? 패킷은 버려지게 된다. loss된다. delay에는 총 4가지가 있다. 1. nodal processing bit error를 체크하는 시간. output link를 결정하는데 걸리는 시간. (routing algorithm이 돌아가는 시간) 2. queueing delay queue에서 패킷이 대기상태로 쌓여 나갈때까지 기다히는 시간 3. transmission delay 데이터가 .. 2020. 5. 3. [ 네트워크 ] ISP structure (network of networks) ISP structure (network of networks) End Systems은 access ISPs에 연결되어 있다. 그렇다면 이 ISP의 구조가 어떻게 되는지 알아보자. access ISPs는 수백만 개이다. 이런 access ISP를 어떻게 연결해줄까? 직접 연결해주면 너무 많은 연결이 생긴다. global한 하나의 ISP에 연결해보자. 그런데 수많은 access ISPs를 global ISP 혼자서 하기 힘들다.. ISP를 여러개로 나누자! 특정 지역의 ISP에 몰리면 그 ISP가 힘들다.. ISPs끼리 연결시켜주자. IXP : Internet exchange point. ISP와의 연결을 담당하는 라우터이다. 경우에 따라서는 regional network를 만드는 경우도 있다. 구글 같은.. 2020. 5. 3. [ 네트워크 ] Packet-switching vs Circuit-switching Packet-switching vs Circuit-switching Packet-switching보다 Circuit-switching가 나은 점 Circuit-switching는 경로를 지정하여 일정한 전송률을 보장받는다. 그래서 전화통화 같은 품질보장이 되어야 하고 계속해서 데이터를 주고받아야 하는 서비스에선, 가변적인 Packet-switching보다 일정한 Circuit-switching를 이용하는 것이 좋다. 그리고 경로를 지정함으로써 다음과 같은 이익을 얻을 수 있다. 1. queueing delay가 완화된다. Packet-switching의 queueing delay는 예측하기 어렵고 매우 가변적이기 때문에 다른 delay보다 대비하기 어렵다. 심지어 queue가 넘치게 되면 loss도 발생.. 2020. 5. 2. 이전 1 2 3 4 5 6 다음