목록 분류 전체보기 (299)
Transmission Control Protocol - point to point - rdt - in-ordder byte stream - pipelined - buffer - duplex - connection oriented - flow control Tcp segment sequence number : 전송하는 message 단위의 가장 앞 byte의 순서번호를 저장. 세그먼트에 있는 첫 번째 바이트의 바이트 스트림 번호. acknowledgment : cumulative ack, 호스트가 상대편에 기대하는 다음 순서 번호. 현재까지 정상적으로 수신된 세그먼트와 기대하는 다음번 세그먼트를 알 수 있다. 순서가 틀린 세그먼트를 수신한 경우, 버퍼를 이용하여 저장해둘지, 버릴지는 규정되어 있지 않다...
Stop and Wait 하나의 패킷을 전송하고 그에 대한 응답을 기다리는 방식. sequence number을 이용하여 중복 패킷을 확인하고, timer로 loss된 패킷을 파악하여 재전송한다. RDT_ stop and wait Pipelining 하드웨어는 우리의 처리보다 빠르고, 효율을 위해선 보다 더 하드웨어를 낭비하지 않고 사용하기 위해 노력해야한다고 컴퓨터 구조를 공부하면서 생각했다. 마찬가지로 네트웨크에서도 데이터를 병렬적으로 처리하여 낭비없는 채널(송신자)의 이용을 위해 파이프라이닝을 이용한다. 전송 시에 패킷의 첫 비트를 전송한 시점부터 처음 응답을 받을 때까지 송신자가 얼마나 분주하게 일을 하였나를 Utilization으로 한다. 아래 그림에서 왼쪽 그림처럼 한 전송에 한 패킷만을 전송..
Reliable Data Transfer check-sum으로 에러 체크만 가능한 udp와 달리 tcp는 reliable한 데이터 전송을 보장한다. reliable을 보장하기 위해 문제가 되는 점은 Error와 Data loss이다. 반대로 이 두가지를 해결할 방법이 있다면 reliable한 데이터 전송이 보장된다는 말과 같다. Protocol 1. Check error with check sum 2. Feedback on wheter received data has errors. 3. Re-transmission when there's no feedback for a certain period. 위 세가지 기본 원리로 rdt 처리가 진행된다. 우선 pck의 checksum 만으로 오류를 확인하고 fee..
Multiplexing / Demultiplexing Application layer에서 알맞은 소켓으로 가져와 transport segment (packet) 로 변환하는 것이 multiplexing, 반대로 transport layer에서 적절한 소켓으로 올리는 것을 demultiplexing이라고 한다. header의 source port, destination port에 의해 결정되고 각각 16비트씩 이므로 이론적으로 2의 16승개의 포트를 갖을 수 있다. UDP UDP는 transport 계층 프로토콜이 할 수 있는 최소 기능 수행하는 프로토콜이다. multiplexing/ demultiplexing과 간단한 오류 검사를 제외하고 다른 기능은 전혀 없다. Udp segment의 header에는 ..
Socket - OS에서 제공하는 API의 일종. - SOCK_STREAM (TCP type), SOCK_DGRAM ( UDP type ) Socket process socket function - int socket(int domain, int type, int protocol) : type SOCK_STREAM : TCP , SOCK_DGRAM : UDP : return creadted socket's ID - int accept(int sockfd, struct sockaddr* childaddr, int* addrlen) : sockfd means file description : childaddr struct data includes IpAddr, port number of client ** c..
TCP/IP TCP UDP Reliable O X Flow control O X Congestion control O X Then, when is UDP used? : When don't need to be reliable. When we don't need to pay attention in leaking some packet. (ex, voice talk) * Protocal : Coordinated rule in network communication. Data switching policy - circuit switching : End to End "reserved" for call - packet switching : Data are sent as packets. Circuit switching..
Cache 매번 느린 메인 메모리에서 instruction을 가져오는 것이 아닌 프로세서와 메인 메모리 사이에 위치하여 자주 사용하는 명령어를 더 빠르게 가져올 수 있도록 하는 기술이다. instruction을 fetch할 때, 특히 같은 구간을 반복해서 fetch할 때, memory안 어떤 주소의 데이터(명령어)가 바뀌지 않는다면 메모리에서 바로 명령어를 가져오는 것이 아닌 좀 더 작고 빠른 장치에서 해당 주소에 해당하는 데이터를 기억해 두었다가 꺼내쓸 수 있는 임시 공간을 만들어서 메모리 접근을 줄인다. 고속의 장치는 비싸다. 가격이 비싸거나, 용량이 적거나, 발열이 크다. 다른 조건(가격, 발열)을 동일하게 한다면 고속의 저장 장치는 더 작은 공간을 갖게 된다. 그 말은 즉 모든 메모리의 데이터가 ..