The high 13 bits of 16,384 are, conveniently enough, 0. That multiplied by 8, is still 0, so the segmentation unit looks at 100,000 plus 0, and finds a descriptor. This descriptors says that the real memory that belongs to this segment is actually located at address 200,000 and that the segment is 32,768 bytes long. That's good news for us, because we want to read the 16,384th byte, and that's within the segment. So the real memory at 216,384 is what the CPU actually gets, assuming that we have the right privilege.
Privilege is what determines permission.
We'll need a way to tell our CPU that it's in Kernel mode or User mode, and that information needs to be available to the Segmentation Unit so that it can react appropriately. So, in our artificial example here, if our descriptor said that this segment can only be accessed when in Kernel mode, we'd get refused access if we were running a user process. We'd also get refused if we had requested address 33,754, because that would be beyond the segment's length as stated by the descriptor. It is, and in actuality, Linux tries to ignore this segmentation stuff as much as possible. That limited user processes to something less than 4,090.