즉, 유저입장에서 볼 수 없는 영역
(커널 버퍼)
소켓을 만들때 recvBuffer sendBuffer를 만듬
- send를 할때 sendBuffer에 복사함
- 이 후 상대방쪽 recvBuffer에 복사됨
- 상대방에서 recv를 하면 recvbuffer에 값을 가져옴
sendBuffer가 꽉차있을경우
1. send 데이터는 대기(sleep 상태)
recvBuffer가 비어있을 경우
1. recv데이터가 올때 까지 대기
-> 즉, 둘다 대기 상태를 주는 블록킹 함수임
send와 recv는 모두 buffer에 데이터에 따라 블록킹되는 함수임을 알 수 있음
두개의 함수 같은 경우 블록킹 당할 경우 더 이상 CPU를 점유하지 않고 context switching을 함
즉, TCP에서 만약 데이터를 단 시간에 많이 보내면 받는 곳에 스레드를 1초동안 재우고 받으면 recvBuffer안에 있는 데이터를 데이터를 나눠 받는것이 아니라 recvBuffer안에 있는 데이터를 다 받아오게된다.