목록 전체 글 (281)
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안 어떤 주소의 데이터(명령어)가 바뀌지 않는다면 메모리에서 바로 명령어를 가져오는 것이 아닌 좀 더 작고 빠른 장치에서 해당 주소에 해당하는 데이터를 기억해 두었다가 꺼내쓸 수 있는 임시 공간을 만들어서 메모리 접근을 줄인다. 고속의 장치는 비싸다. 가격이 비싸거나, 용량이 적거나, 발열이 크다. 다른 조건(가격, 발열)을 동일하게 한다면 고속의 저장 장치는 더 작은 공간을 갖게 된다. 그 말은 즉 모든 메모리의 데이터가 ..
Pipelining 기존의 파이프라인을 적용하지 않은 멀티사이클 방식은, 한 명령어를 처리하고 그 이후에나 다음 명령어를 처리시켜 ALU를 사용 시에는 메모리가 쉬고, 메모리를 사용 시에는 ALU가 쉬었다. 즉 명령어의 단계 외의 다른 컴포넌트가 IDLE 상태로 처리를 대기하는 식이었다. 파이프라이닝은 여러 명령어를 중첩하여 명령어 처리 단계를 병렬 실행시키는 기술이다. 한 사이클안에서 여러 명령어를 동시에 처리하여 쉬는 컴포넌트 없이 작업하여 더 효율적인 처리를 가능도록 한다. 위 그림에서의 예시라면 위의 파이프라인을 적용하지 않은 프로세서는 3개의 LW 명령어를 처리하는데 2400ps의 시간을, 아래 파이프파인을 적용한 프로세서는 약 1400의 시간을 사용한다. 이때 3개의 명령어가 아닌, 명령어를 ..
Single-Cycle processor CPU는 내부 회로를 동작시키기 위해 일정한 주기로 규칙적인 전기 신호를 발생시키는데 이를 Clock이라고 한다. 즉 1 clock cycle은 한 번의 전기 신호를 말하고, 한 클럭에 걸리는 시간을 클럭 주기(Clock Period 또는 Clock cycle time)이라고 한다. 싱글 사이클 프로세서는 그 사이클 동안 하나의 명령어를 처리하는 프로세서를 의미한다. Control signal 명령어의 종류에 따라 다음 연산의 인자로 들어가는 값을 달리 해야 한다. 이를 테면 Mips에서 Add와 Addi는 ALU 두 인자를 더하는 연산을 처리하는 것은 같지만, 인자로 들어오는 값이 다르다. Add의 경우에는 R[rs]와 R[rt], Addi의 경우에는 R[rs]..